实现Docker的不同方式是什么?

实现Docker的不同方式是什么?,docker,dockerfile,Docker,Dockerfile,例如,图像的继承通常使用docker的from命令来完成 from centos7:centos7 在我的例子中,我有一个Dockerfile,我想用作基本图像生成器,还有两个子Dockerfile,用于自定义该文件 我不想将原始dockerfile作为容器提交给dockerhub,因此,例如,我想执行以下操作: Dockerfile slave/Dockerfile master/Dockerfile 其中slave/Dockerfile如下所示: from ../Dockerfile

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

from centos7:centos7 
在我的例子中,我有一个Dockerfile,我想用作基本图像生成器,还有两个子Dockerfile,用于自定义该文件

我不想将原始dockerfile作为容器提交给dockerhub,因此,例如,我想执行以下操作:

Dockerfile
slave/Dockerfile
master/Dockerfile
其中slave/Dockerfile如下所示:

from ../Dockerfile
docker build -t my/base:2.0 .
这(或任何类似的)可能吗?或者我必须将顶级Dockerfile转换为容器,并将其作为dockerhub映像提交,然后才能使用docker FROM指令利用它。

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

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

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

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

from ../Dockerfile
docker build -t my/base:2.0 .
当像上面的例子中那样构建了一个映像后,它可以用作来自-映像的
,以构建其他子映像,至少在同一台机器(同一本地存储库)上。因此,在子映像中,可以使用以下内容:

docker build -t my/base .
FROM        my/base
基本上你不需要把任何东西推到任何地方。所有图像都在您的计算机上本地显示。但是,如果尝试在没有先前构建的基础映像的情况下构建子映像,则会出现错误

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

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

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

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

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

      from ../Dockerfile
      
      docker build -t my/base:2.0 .
      
      当像上面的例子中那样构建了一个映像后,它可以用作来自
-映像的
,以构建其他子映像,至少在同一台机器(同一本地存储库)上。因此,在子映像中,可以使用以下内容:

docker build -t my/base .
FROM        my/base
基本上你不需要把任何东西推到任何地方。所有图像都在您的计算机上本地显示。但是,如果尝试在没有先前构建的基础映像的情况下构建子映像,则会出现错误

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

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

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

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

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

      from ../Dockerfile
      
      docker build -t my/base:2.0 .
      
      当像上面的例子中那样构建了一个映像后,它可以用作来自
-映像的
,以构建其他子映像,至少在同一台机器(同一本地存储库)上。因此,在子映像中,可以使用以下内容:

docker build -t my/base .
FROM        my/base
基本上你不需要把任何东西推到任何地方。所有图像都在您的计算机上本地显示。但是,如果尝试在没有先前构建的基础映像的情况下构建子映像,则会出现错误

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

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

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

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

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

      from ../Dockerfile
      
      docker build -t my/base:2.0 .
      
      当像上面的例子中那样构建了一个映像后,它可以用作来自
-映像的
,以构建其他子映像,至少在同一台机器(同一本地存储库)上。因此,在子映像中,可以使用以下内容:

docker build -t my/base .
FROM        my/base
基本上你不需要推任何东西