Rewrite part of the architecture introduction
parent
235a80aad8
commit
1f5fb2d521
|
@ -1,7 +1,9 @@
|
||||||
|
##docker容器
|
||||||
|
|
||||||
当我们运行`docker run -i -t ubuntu /bin/bash`命令时,docker 在后台运行的操作如下:
|
当我们运行`docker run -i -t ubuntu /bin/bash`命令时,docker 在后台运行的操作如下:
|
||||||
|
|
||||||
* 如果本地有ubuntu这个image就从它创建容器,否则从公有仓库下载
|
* 如果本地有ubuntu这个image就利用它,否则从公有仓库下载
|
||||||
* 从image创建容器
|
* 从image创建一个容器
|
||||||
* 分配一个文件系统,并在只读的image层外面挂载一层可读写的层
|
* 分配一个文件系统,并在只读的image层外面挂载一层可读写的层
|
||||||
* 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
|
* 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
|
||||||
* 从地址池配置一个ip地址给容器
|
* 从地址池配置一个ip地址给容器
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
|
##docker image的工作原理
|
||||||
docker image是怎么实现增量的修改和维护的?
|
docker image是怎么实现增量的修改和维护的?
|
||||||
每个docker都有很多层次构成,docker使用 Union File Systems 将这些不同的层结合到一个image中去。
|
每个docker都有很多层次构成,docker使用 [Union FS](http://en.wikipedia.org/wiki/UnionFS) 将这些不同的层结合到一个image中去。
|
||||||
|
Union FS是一种特殊的文件系统,它支持将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem),
|
||||||
|
|
||||||
AUFS (AnotherUnionFS) 是一种 Union FS, 简单来说就是支持将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)的文件系统, 更进一步的理解, 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 也正是如此。
|
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 也正是如此。
|
|
@ -1 +1,4 @@
|
||||||
docker仓库用来保存我们的images,当我们创建了自己的image之后我们就可以使用push命令将它上传到公有或者私有仓库,这样下次要在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。
|
##docker仓库
|
||||||
|
docker仓库用来保存我们的images,当用户创建了自己的image之后就可以使用push命令将它上传到公有或者私有仓库,这样下次要在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。
|
||||||
|
|
||||||
|
*跟git的操作类似。
|
|
@ -1,3 +1,4 @@
|
||||||
|
##底层技术
|
||||||
docker底层的2个核心技术分别是Namespaces和Control groups。
|
docker底层的2个核心技术分别是Namespaces和Control groups。
|
||||||
|
|
||||||
以下内容摘自InfoQ Docker,自1.20版本开始docker已经抛开lxc,不过下面的内容对于理解docker还是有很大帮助。
|
以下内容摘自InfoQ Docker,自1.20版本开始docker已经抛开lxc,不过下面的内容对于理解docker还是有很大帮助。
|
||||||
|
|
Loading…
Reference in New Issue