实现Docker FROM的不同方式有哪些?
例如,图像的inheritance通常使用docker's from命令完成。
from centos7:centos7
在我的情况下,我有一个Dockerfile,我想用作基本的图像生成器,我有两个子docker文件定制该文件。
我不想将dockerfile作为容器提交给dockerhub,所以我想这样做:
Dockerfile slave/Dockerfile master/Dockerfile
从/ Dockerfile看起来像这样:
from ../Dockerfile
这(或类似的)是可能的吗? 或者,我必须实际将顶级Dockerfile转换为容器,并将其提交为dockerhub映像,然后才能使用docker FROM指令来利用它。
您不必将图像推送到dockerhub ,以便能够将其用作基础图像。 但是您需要在本地构build它们,以便将它们存储在本地Docker存储库中。 您不能使用基于相对path(如../Dockerfile
的图像作为基础映像 – 必须将您自己的映像基于本地存储库中存在的其他映像文件。
假设您的基本映像使用以下(在Dockerfile
):
FROM centos7:centos7 // More stuff...
而当你build立它使用以下内容:
docker build -t my/base .
这里发生的是,图像centos7:centos7
是从dockerhub下载的。 然后,您的图像my/base
被build立和存储(没有版本)在您的本地存储库。 您也可以通过简单地提供版本信息来为您的docker容器提供版本信息:
docker build -t my/base:2.0 .
当像上面的例子那样构build了一个图像时,它可以作为一个FROM
-image来构build其他的子图像,至less在同一台机器上(同一个本地存储库)。 所以,在你的子图像中,你可以使用以下内容:
FROM my/base
基本上你不必在任何地方推任何东西。 所有的图像都在本地机器上。 但是,如果您尝试构build没有预先构build的基础映像的子映像,则会出现错误。
有关构build和标记的更多信息,请查看文档:
- dockerbuild设
- docker标签
- 创build你自己的形象