大多数 Dockerfile 从父镜像开始。如果您需要完全控制镜像的内容,则可能需要创建一个基本镜像。这是区别:
一个父镜像是你的形象是基于镜像。它指的是FROMDockerfile 中指令的内容。Dockerfile 中的每个后续声明都会修改此父镜像。大多数 Dockerfile 从父镜像开始,而不是从基础镜像开始。但是,这些术语有时可以互换使用。
Dockerfile 从基本镜像开始
使用tar创建完整图像
通常,从运行您想要打包为父镜像的发行版的工作机器开始,尽管这对于某些工具(例如 Debian 的Debootstrap)不是必需的 ,您也可以使用它来构建 Ubuntu 镜像。
创建 Ubuntu 父镜像可以像这样简单:
$ sudo debootstrap xenial xenial > /dev/null
$ sudo tar -C xenial -c . | docker import – xenial
a29c15f1bf7a
$ docker run xenial cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION=\”Ubuntu 16.04 LTS\”
在Docker GitHub 存储库中有更多用于创建父镜像的示例脚本。