docker 架构 (文件系统, 层, 容器)
2014-03-17 17:06
330 查看
按照docker官网上的说法,docker的文件系统分为两层:bootfs和rootfs
bootfs包含了bootloader和linux内核。用户是不能对这层作任何修改的。在内核启动之后,bootfs实际上会unmount掉。
rootfs则包含了一般系统上的常见目录结构,类似于/dev, /proc, /bin等等以及一些基本的文件和命令。
上图中,aufs (advanced multi layered unification filesystem),是一种可堆叠的文件系统。
对于linux上不同版本的问题,docker可以同时运行多个rootfs.
Docker的文件系统是分层的,它的rootfs在mount之后会转为只读模式。 Docker在它上面添加一个新的文件系统,来达成它的只读。
事实上,从下图中,我们能看到多个只读的文件系统,Docker中把他们称为 层。
image是只读的,container部分则是可写的。
如果用户想要修改底层只读层上的文件,这个文件就会被先拷贝到上层,修改后驻留在上层,并屏蔽原有的下层文件。
最后一部分是容器(container), 容器是可读写的。
在系统启动时,Docker会首先一层一层的加载image,直到最先面的base image。而这些image都是只读的。
最后,在最上层添加可读写的一个容器, 这里存放着诸如unique id,网络配置之类的信息。
既然是可读写的,就会有状态。容器共有两种状态:running 和 exited.
用户也可以用docker commit 命令将一个容器压制为image,供后续使用。
bootfs包含了bootloader和linux内核。用户是不能对这层作任何修改的。在内核启动之后,bootfs实际上会unmount掉。
rootfs则包含了一般系统上的常见目录结构,类似于/dev, /proc, /bin等等以及一些基本的文件和命令。
上图中,aufs (advanced multi layered unification filesystem),是一种可堆叠的文件系统。
对于linux上不同版本的问题,docker可以同时运行多个rootfs.
Docker的文件系统是分层的,它的rootfs在mount之后会转为只读模式。 Docker在它上面添加一个新的文件系统,来达成它的只读。
事实上,从下图中,我们能看到多个只读的文件系统,Docker中把他们称为 层。
image是只读的,container部分则是可写的。
如果用户想要修改底层只读层上的文件,这个文件就会被先拷贝到上层,修改后驻留在上层,并屏蔽原有的下层文件。
最后一部分是容器(container), 容器是可读写的。
在系统启动时,Docker会首先一层一层的加载image,直到最先面的base image。而这些image都是只读的。
最后,在最上层添加可读写的一个容器, 这里存放着诸如unique id,网络配置之类的信息。
既然是可读写的,就会有状态。容器共有两种状态:running 和 exited.
用户也可以用docker commit 命令将一个容器压制为image,供后续使用。
相关文章推荐
- 使用 Docker/LXC 迅速启动一个桌面系统
- Docker跟一般的虚拟机有什么区别?
- 如何从docker将image镜像到私有的registry
- 如何使用 docker 及常用命令(二)
- 如何使用 docker 及常用命令(一)
- 如何从docker将image镜像到私有的registry
- docker 安装和使用 注意
- 快速理解Docker - 容器级虚拟化解决方案
- Docker简要操作
- 开始LXC,DOCKER,VAGRANT,COREOS之旅
- Cgroup与LXC简介
- 集装箱式的轻量级Linux虚拟化技术PaaS——Docker相关学习资料
- LXC是如何与CGROUP,namespace扯上关系的?再加上DOCKER.IO。完美!!!
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
- 在Redhat/Centos下安装Docker(不升级内核)
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
- Redhat下Docker、LXC、CGroup的协同配置 推荐
- Docker web管理界面——Shipyard
- 具有中国特色的docker折腾记(下)
- Docker入门——image制作