Rewrite part of the architecture introduction

This commit is contained in:
Baohua Yang 2014-09-11 17:07:49 +08:00
parent 235a80aad8
commit 1f5fb2d521
4 changed files with 16 additions and 5 deletions

View File

@ -1,7 +1,9 @@
##docker容器
当我们运行`docker run -i -t ubuntu /bin/bash`命令时docker 在后台运行的操作如下:
* 如果本地有ubuntu这个image就从它创建容器,否则从公有仓库下载
* 从image创建容器
* 如果本地有ubuntu这个image就利用它,否则从公有仓库下载
* 从image创建一个容器
* 分配一个文件系统并在只读的image层外面挂载一层可读写的层
* 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
* 从地址池配置一个ip地址给容器

View File

@ -1,4 +1,9 @@
##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 也正是如此。

View File

@ -1 +1,4 @@
docker仓库用来保存我们的images当我们创建了自己的image之后我们就可以使用push命令将它上传到公有或者私有仓库这样下次要在另外一台机器上使用这个image时候只需要从仓库上pull下来就可以了。
##docker仓库
docker仓库用来保存我们的images当用户创建了自己的image之后就可以使用push命令将它上传到公有或者私有仓库这样下次要在另外一台机器上使用这个image时候只需要从仓库上pull下来就可以了。
*跟git的操作类似。

View File

@ -1,3 +1,4 @@
##底层技术
docker底层的2个核心技术分别是Namespaces和Control groups。
以下内容摘自InfoQ Docker自1.20版本开始docker已经抛开lxc不过下面的内容对于理解docker还是有很大帮助。