为什么在从Docker中的映像创建容器时会创建一个containerID-init层?新容器难道不能作为父图像吗?
答案 0 :(得分:4)
每个容器都有两个层,一个(称为init层),它基于图像层和包含实际容器内容的子层。 init层包含一些必须始终存在于Docker容器中的文件(例如/.dockerinit)。 Supported Filesystems
containerID-init层是基于图像的容器的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",
答案 1 :(得分:0)
<container>-init
层以创建某些必须存在的文件/目录(通常作为挂载点),以便docker可以将挂载绑定到这些挂载点,而不必担心它们不存在。
注意:init图层为RO
(READONLY),无法修改。
这些挂载点通常是空的,以下说明了它们的用途:
/proc
:有关流程和系统的内存数据sys
:内存系统文件系统/etc/hostname
:容器主机名文件,每个容器都有自己的主机名,并将mount挂载到此文件/etc/hosts
:托管文件,IP和名称映射/etc/resolv.conf
:与DNS相关的解析配置文件