Docker中的Init层
为什么从Docker中的映像创build容器时创build了containerID-init图层? 新的容器不能作为父图像?
每个容器都有两层,一层(称为init层),它基于一个图像层和一个包含实际容器内容的子层。 init层包含几个文件,这些文件必须总是存在于Docker容器中(例如/.dockerinit)。 支持的文件系统
containerID-init图层是基于图像的容器的初始层。 它将一些文件添加到当前容器中,包括:
"/dev/pts": "dir", "/dev/shm": "dir", "/proc": "dir", "/sys": "dir", "/.dockerenv": "file", "/etc/resolv.conf": "file", "/etc/hosts": "file", "/etc/hostname": "file", "/dev/console": "file", "/etc/mtab": "/proc/mounts",
代码链接
存在<container>-init
层以创build必须存在的文件/目录(通常作为挂载点),以便docker可以挂载到这些挂载点,而不用担心它们不存在。
注意 :init层是RO
(READONLY),不能通过修改。
这些挂载点通常是空的,下面解释它们的用途:
-
/proc
:关于进程和系统的内存数据 -
sys
:内存系统文件系统 -
/etc/hostname
:container hostname文件,每个容器都有自己的主机名,并绑定到这个文件上 -
/etc/hosts
:hosts文件,ip和名称映射 -
/etc/resolv.conf
相关的parsingconf文件 - ……