挂载在容器根目录上、用来为容器进程提供隔离后执行环境的文件系统,就是所谓的“容器镜像”;
它还有一个更为专业的名称: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 只包括了操作系统的“躯壳”,并没有包括操作系统的“灵魂”。