我正在處理dockerfile。 我剛剛意識到我一直在使用FROM
與索引圖像。如何使用dockerfile將本地圖像用作基礎圖像?
所以我想:
- 我如何使用沒有它
pushing
到索引我的地方(自定義)圖像作爲我的基地(FROM
)圖像的一個?
我正在處理dockerfile。 我剛剛意識到我一直在使用FROM
與索引圖像。如何使用dockerfile將本地圖像用作基礎圖像?
所以我想:
pushing
到索引我的地方(自定義)圖像作爲我的基地(FROM
)圖像的一個?你可以使用它而不做任何特殊的事情。如果你有一個名爲blah
的本地圖像,你可以做FROM blah
。如果您在Dockerfile做FROM blah
,但不有一個名爲blah
局部圖像,然後多克爾將嘗試從註冊表中拉出。
換句話說,如果一個Dockerfile不是FROM ubuntu
,但是你有一個名字爲ubuntu
的本地圖像,它與官方圖像不同,你的圖像將覆蓋它。
已驗證:它在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.
我沒有信譽添加評論(@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-registry和https://docs.docker.com/registry/#tldr
最後,如果提供了一個名字當你的圖像沒有被解決,嘗試添加標籤的圖像,當你創建
https://docs.docker.com/engine/reference/commandline/commit/
這種形式描述了一個類似的問題
https://github.com/moby/moby/issues/8975
通過省略特定標記,碼頭工將查找標記爲「latest」的圖像,因此,請使用:latest標記創建圖像,或者更改您的FROM
加入上述鏈接的代碼塊,因爲我沒有足夠的代表處發佈超過2個鏈接...;)
感謝@jpetazzo! – Phil
不適用於我 - 可能是boot2docker的問題?我有最新版本1.3.1 ... Docker似乎沒有先檢查本地(或者可能不報告它),它直接嘗試從註冊表中拉出http://stackoverflow.com/q/27046118/202168 – Anentropic
@ Anentropic我正在使用boot2docker 1.5。 的bash-4.3 $搬運工圖像 REPOSITORY標籤圖片ID創建虛擬大小 ubuntu1504gcc484最新0378ea1c0b6c 20小時前1.36 GB 而在我其他Dockerfile做「FROM ubuntu1504gcc484」,這工作得很好。 (道歉爲格式不佳) – Pejvan