Docker映像初始文件系统从哪里来?

我在https://github.com/pypa/manylinux查看manylinux1股票图像构build脚本,特别是调用链:

  • .travis.yml

     <...> script: - docker build --rm -t quay.io/pypa/manylinux1_$PLATFORM:$TRAVIS_COMMIT -f docker/Dockerfile-$PLATFORM docker/ 
  • docker/Dockerfile-<arch>

     COPY build_scripts /build_scripts RUN bash build_scripts/build.sh 
  • docker/build_scripts/build.sh

     <a bunch of variables> sed -i 's/enabled=1/enabled=0/' /etc/yum/pluginconf.d/fastestmirror.conf <...> 

该脚本假定已经存在基本的CentOS 5文件系统(例如/etc/yum )。 它从何而来?

我没有看到任何关于股票图像的引用,或者从某处下载它或使用安装ISO的任何内容。 代码库中的任何地方都没有/etc etc。

查看manylinux映像的Dockerfile,可以看到它基于centos:5.11

 FROM centos:5.11 MAINTAINER The ManyLinux project ... 

/etc/yum文件夹已经是centos映像的一部分,可以通过运行来validation: docker run -it centos:5.11 ls /etc/yum

更新:

Docker镜像是在Dockerfile中定义的一个层结构中构build的。 通过在Dockerfile中使用FROM语法 ,图像彼此重叠。

在这种情况下,图像基于centos:5.11图像。 语法在docker标签|处解释 Docker文档 (去图)。 在这种情况下,没有目录地址,这意味着它从默认的Docker Hubregistry中的centos条目中检索,这个registry是5.11标签 。

CentOS的Dockerfile非常简单。 它只是将基础CentOS文件结构的tar包扩展成一个scratch (空)泊坞窗图像。 在最新版本的情况下,这个tarball, centos-7-docker.tar.xz包含/etc/yum文件夹等等。