2013-12-09 48 views

回答

55

你可以使用它而不做任何特殊的事情。如果你有一個名爲blah的本地圖像,你可以做FROM blah。如果您在Dockerfile做FROM blah,但有一個名爲blah局部圖像,然後多克爾將嘗試從註冊表中拉出。

換句話說,如果一個Dockerfile不是FROM ubuntu,但是你有一個名字爲ubuntu的本地圖像,它與官方圖像不同,你的圖像將覆蓋它。

+0

感謝@jpetazzo! – Phil

+2

不適用於我 - 可能是boot2docker的問題?我有最新版本1.3.1 ... Docker似乎沒有先檢查本地(或者可能不報告它),它直接嘗試從註冊表中拉出http://stackoverflow.com/q/27046118/202168 – Anentropic

+0

@ Anentropic我正在使用boot2docker 1.5。 的bash-4.3 $搬運工圖像 REPOSITORY標籤圖片ID創建虛擬大小 ubuntu1504gcc484最新0378ea1c0b6c 20小時前1.36 GB 而在我其他Dockerfile做「FROM ubuntu1504gcc484」,這工作得很好。 (道歉爲格式不佳) – Pejvan

10

已驗證:它在Docker 1.7.0中運行良好。

順便說一句,運行docker build命令時沒有指定--pull=true

if you want use the local image as the base image, please without the option --pull=true, --pull=true will always attempt to pull a newer version of the image.

https://github.com/docker/docker/issues/14943

+3

如果你的圖像名稱中有'-'字符(例如'my-image'),那麼你的docker將不會在本地解析這個圖像,我不知道爲什麼,無論如何解決它只是不使用'-'字符,在docker-compose 1.8和docker 1.11上測試 – deFreitas

+0

我在'Docker version 17.06.2-ce,build cec0b72'上使用了一個帶連字符的名字沒有問題,但要確保如果您爲映像添加了標籤作爲映像規範的一部分(從localimage:標籤)。 – Scott

3

我沒有信譽添加評論(@defreitas),以便將其作爲一個答案。你可以在你的圖像中有 - 字符。假設你有一個名爲centos-base-image的標籤爲7.3.1611的本地映像(不是本地註冊表)。

docker version 
     Client: 
     Version:   1.12.6 
     API version:  1.24 
     Package version: docker-common-1.12.6-16.el7.centos.x86_64 
     Go version:  go1.7.4 

     Server: 
     Version:   1.12.6 
     API version:  1.24 
     Package version: docker-common-1.12.6-16.el7.centos.x86_64 
     Go version:  go1.7.4 

docker images 
REPOSITORY   TAG 
centos-base-image  7.3.1611 

Dockerfile

FROM centos-base-image:7.3.1611 
RUN yum -y install epel-release libaio bc flex 

結果

Sending build context to Docker daemon 315.9 MB 
Step 1 : FROM centos-base-image:7.3.1611 
    ---> c4d84e86782e 
Step 2 : RUN yum -y install epel-release libaio bc flex 
    ---> Running in 36d8abd0dad9 
... 

在上面FROM的例子中,獲取當地的形象,你可以提供額外的說明,從您的自定義註冊表中取得的圖像(如FROM localhost:5000/my-image:with.tag )。見https://docs.docker.com/engine/reference/commandline/pull/#pull-from-a-different-registryhttps://docs.docker.com/registry/#tldr

最後,如果提供了一個名字當你的圖像沒有被解決,嘗試添加標籤的圖像,當你創建

https://docs.docker.com/engine/reference/commandline/commit/ 

這種形式描述了一個類似的問題

https://github.com/moby/moby/issues/8975 

通過省略特定標記,碼頭工將查找標記爲「latest」的圖像,因此,請使用:latest標記創建圖像,或者更改您的FROM

加入上述鏈接的代碼塊,因爲我沒有足夠的代表處發佈超過2個鏈接...;)

相關問題