0

例如,图像的继承通常使用 docker 的 from 命令来完成。

from centos7:centos7 

就我而言,我有一个 Dockerfile,我想将其用作基本映像构建器,并且我有两个子 dockerfile 可以自定义该文件。

不想将原始 dockerfile 作为容器提交给 dockerhub,例如,我想做:

Dockerfile
slave/Dockerfile
master/Dockerfile

slave/Dockerfile 看起来像这样:

from ../Dockerfile

这(或类似的)可能吗?或者我是否必须实际将顶级 Dockerfile 转换为容器,并将其作为 dockerhub 映像提交,然后才能使用 docker FROM指令来利用它。

4

1 回答 1

3

不必将图像推送到 dockerhub即可将它们用作基础图像。但是您需要在本地构建它们,以便将它们存储在本地 docker 存储库中。您不能将图像用作基于相对路径的基本图像,例如../Dockerfile- 您必须将自己的图像基于本地存储库中存在的其他图像文件。

假设您的基本图像使用以下内容(在 中Dockerfile):

FROM        centos7:centos7
// More stuff...

当你构建它时,你使用以下内容:

docker build -t my/base .

这里发生的是图像centos7:centos7是从 dockerhub 下载的。然后你的镜像my/base被构建并存储在你的本地存储库中(没有版本控制)。您还可以通过简单地提供如下版本信息来为 docker 容器提供版本控制:

docker build -t my/base:2.0 .

当像上面的例子一样构建了一个镜像后,它可以被用作一个FROM-image 来构建其他子镜像,至少在同一台机器上(同一个本地存储库)。因此,在您的子图像中,您可以使用以下内容:

FROM        my/base

基本上你不必在任何地方推动任何东西。所有图像都本地存在于您的机器上。但是,如果您尝试在没有先前构建的基础镜像的情况下构建子镜像,则会出现错误。

有关构建和标记的更多信息,请查看文档:

于 2014-12-30T21:24:58.403 回答