mirror of
				https://github.com/yeasy/docker_practice.git
				synced 2025-10-31 10:11:34 +00:00 
			
		
		
		
	Rewrite part of the architecture introduction
This commit is contained in:
		| @@ -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还是有很大帮助。 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user