容器rootfs

挂载在容器根目录上、用来为容器进程提供隔离后执行环境的文件系统,就是所谓的“容器镜像”;

它还有一个更为专业的名称:rootfs (根文件系统)。

所以,一个最常见的rootfs,或者说容器镜像,会包括如下所示的一些目录和文件,比如/bin /etc/ proc等等:

[root@node01 test]# docker run -it busybox /bin/sh
/ # ls /
bin   dev   etc   home  proc  root  sys   tmp   usr   var

而你进入容器之后执行的/bin/sh,就是/bin目录下的可执行文件,跟宿主机的/bin/sh安全不同。

现在你应该可以理解,对Docker项目来说,它最核心的管理实际上是为待创建的用户进程:

1、启用Linux NameSpace隔离配置;

2、设置指定的Cgroup限制参数;

3、切换进程的根目录(Change Root)

这样一个完整的容器就诞生了。另外需要明确的是rootfs只是一个操作系统所包含的文件、配置和目录,

并不包括操作系统的内核(bootfs包含了BootLoader和Kernel), 在Linux操作系统中,这两部分是分开存放的,操作系统只有在开机启动

时才会加载指定版本的内核。

所以说,rootfs 只包括了操作系统的“躯壳”,并没有包括操作系统的“灵魂”。

 

posted @ 2018-09-10 21:50  Vincen_shen  阅读(2989)  评论(0编辑  收藏  举报