mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-12-25 14:38:54 +00:00
Refine and fix
This commit is contained in:
parent
7fc1ca0733
commit
e6883a4ef2
@ -1,11 +1,11 @@
|
||||
##docker容器
|
||||
|
||||
当我们运行`docker run -i -t ubuntu /bin/bash`命令时,docker 在后台运行的操作如下:
|
||||
|
||||
|
||||
* 如果本地有ubuntu这个image就利用它,否则从公有仓库下载
|
||||
* 从image创建一个容器
|
||||
* 之后从image创建一个容器
|
||||
* 分配一个文件系统,并在只读的image层外面挂载一层可读写的层
|
||||
* 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
|
||||
* 从地址池配置一个ip地址给容器
|
||||
* 执行你指定的程序,在这里启动一个/bin/bash进程
|
||||
* -i -t 指定标准输入和输出
|
||||
* -i -t 指定标准输入和输出
|
||||
|
@ -1,9 +1,10 @@
|
||||
##docker image的工作原理
|
||||
|
||||
docker image是怎么实现增量的修改和维护的?
|
||||
每个docker都有很多层次构成,docker使用 [Union FS](http://en.wikipedia.org/wiki/UnionFS) 将这些不同的层结合到一个image中去。
|
||||
Union FS是一种特殊的文件系统,它支持将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem),
|
||||
Union FS是一种特殊的文件系统,它支持将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem),
|
||||
|
||||
AUFS (AnotherUnionFS) 就是一种 Union FS, AUFS支持为每一个成员目录(类似Git Branch)设定readonly、readwrite 和 whiteout-able 权限, 同时 AUFS 里有一个类似分层的概念, 对 readonly 权限的 branch 可以逻辑上进行修改(增量地, 不影响 readonly 部分的)。
|
||||
|
||||
通常 Union FS 有两个用途, 一方面可以实现不借助 LVM、RAID 将多个disk挂到同一个目录下, 另一个更常用的就是将一个 readonly 的 branch 和一个 writeable 的 branch 联合在一起,Live CD正是基于此方法可以允许在 OS image 不变的基础上允许用户在其上进行一些写操作。
|
||||
Docker 在 AUFS 上构建的 container image 也正是如此。
|
||||
Docker 在 AUFS 上构建的 container image 也正是如此。
|
||||
|
@ -1,17 +1,18 @@
|
||||
##内部组件
|
||||
docker有三个内部组件
|
||||
* docker images
|
||||
* docker registries
|
||||
* docker containers
|
||||
* images(镜像
|
||||
* registries(仓库)
|
||||
* containers(容器)
|
||||
|
||||
### Docker images
|
||||
### Images
|
||||
docker images 就是一个只读的模板。比如:一个image可以包含一个完整的ubuntu的操作系统,里面仅安装了apache或者你需要的其它应用程序。
|
||||
images可以用来创建docker containers,docker提供了一个很简单的机制来创建images或者更新现有的images,你甚至可以直接从其他人那里下载一个已经做好的images来直接使用。
|
||||
|
||||
###Docker registries
|
||||
###Registries
|
||||
Docker registries 也叫docker仓库,它有公有仓库和私有仓库2种形式,他们都可以用来让你上传和下载images。公有的仓库,即[Docker Hub](https://hub.docker.com),提供了一个数量庞大的image库供用户下载。当然,你也可以在自己的局域网内建一个自己的私有仓库。
|
||||
|
||||
*从这个意义上看,Docker Hub的功能跟GitHub类似。
|
||||
|
||||
###Docker containers
|
||||
###Containers
|
||||
即docker容器,容器是从image镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
|
||||
*image是只读的,container在启动的时候创建可写的一层作为最上层。
|
||||
|
@ -1,4 +1,5 @@
|
||||
##docker仓库
|
||||
docker仓库用来保存我们的images,当用户创建了自己的image之后就可以使用push命令将它上传到公有或者私有仓库,这样下次要在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。
|
||||
|
||||
*跟git的操作类似。
|
||||
##docker仓库
|
||||
|
||||
docker仓库用来保存我们的images,当用户创建了自己的image之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。
|
||||
|
||||
*跟git的操作类似。
|
||||
|
@ -21,4 +21,4 @@ UTS("UNIX Time-sharing System") namespace允许每个container拥有独立的hos
|
||||
###user namespace
|
||||
每个container可以有不同的 user 和 group id, 也就是说可以在container内部用container内部的用户执行程序而非Host上的用户。
|
||||
|
||||
Control groups主要用来隔离各个容器和宿主主机的资源利用。
|
||||
Control groups主要用来隔离各个容器和宿主主机的资源利用。
|
||||
|
Loading…
Reference in New Issue
Block a user