Docker中的Init层

时间:2015-11-13 16:48:19

标签: docker storage

为什么在从Docker中的映像创建容器时会创建一个containerID-init层?新容器难道不能作为父图像吗?

2 个答案:

答案 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",

code link

答案 1 :(得分:0)

存在

<container>-init层以创建某些必须存在的文件/目录(通常作为挂载点),以便docker可以将挂载绑定到这些挂载点,而不必担心它们不存在。

注意:init图层为RO(READONLY),无法修改。

这些挂载点通常是空的,以下说明了它们的用途:

  • /proc:有关流程和系统的内存数据
  • sys:内存系统文件系统
  • /etc/hostname:容器主机名文件,每个容器都有自己的主机名,并将mount挂载到此文件
  • /etc/hosts:托管文件,IP和名称映射
  • /etc/resolv.conf:与DNS相关的解析配置文件
  • ......