2014-12-30 16 views
0

例如,圖像的繼承通常使用docker's from命令完成。實現Docker FROM的不同方式有哪些?

from centos7:centos7 

就我而言,我有一個Dockerfile,我想作爲基礎圖像生成器,可以和我有自定義文件中的兩個子dockerfiles。

希望提交原dockerfile作爲容器dockerhub,因此,例如,我想這樣做:

Dockerfile 
slave/Dockerfile 
master/Dockerfile 

當奴隸/ Dockerfile看起來是這樣的:

from ../Dockerfile 

這是(或類似的)可能嗎?或者,我必須實際將頂級Dockerfile轉換爲容器,並將其提交爲dockerhub映像,然後才能利用docker FROM指令對其進行利用。

回答

2

不必將圖片推送到dockerhub以便能夠將它們用作基礎圖像。但是您需要在本地構建它們,以便它們存儲在本地Docker存儲庫中。您不能將圖像用作基於相對路徑的基礎圖像,例如../Dockerfile - 您必須將自己的圖像置於本地存儲庫中存在的其他圖像文件上。

假設基礎映像使用以下(在Dockerfile):

FROM  centos7:centos7 
// More stuff... 

當你建立了您使用以下方法:

docker build -t my/base . 

這裏會發生什麼事是圖像centos7:centos7從dockerhub下載。然後,您的圖像my/base被構建並存儲在本地存儲庫中(無版本控制)。您還可以通過簡單地提供這樣的版本信息提供版本給你的搬運工容器:

docker build -t my/base:2.0 . 

當圖像已建成在上面的例子中可以被用來作爲一個FROM -image建立其他子圖像,至少在同一臺機器上(同一本地存儲庫)。因此,在您的子圖像中,您可以使用以下內容:

FROM  my/base 

基本上,您不必在任何地方推任何東西。所有圖像都在本地機器上。但是,如果您嘗試構建沒有預先構建基礎映像的子映像,則會出現錯誤。

有關建築和標籤的更多信息,請查看文檔:

相關問題