实现Docker FROM的不同方法有哪些?

时间:2014-12-30 21:18:31

标签: docker dockerfile

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

from centos7:centos7 

就我而言,我有一个Dockerfile,我想用它作为基本图像构建器,我有两个子dockerfiles来自定义该文件。

想要将原始dockerfile作为dockerhub的容器提交,例如,我想这样做:

Dockerfile
slave/Dockerfile
master/Dockerfile

slave / Dockerfile看起来像这样:

from ../Dockerfile

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

1 个答案:

答案 0 :(得分:3)

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

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

FROM        centos7:centos7
// More stuff...

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

docker build -t my/base .

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

docker build -t my/base:2.0 .

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

FROM        my/base

基本上你不需要在任何地方推送任何东西。所有图像都存储在您的计算机上。但是,如果您尝试在没有先前构建的基本映像的情况下构建子映像,则会出现错误。

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