docker image push

描述將映象上傳到登錄檔
用法docker image push [OPTIONS] NAME[:TAG]
別名
docker push

描述

使用 docker image push 將您的映象分享到 Docker Hub 登錄檔或自託管登錄檔。

有關有效映象和標籤名稱的更多資訊,請參閱 docker image tag 參考。

終止 docker image push 程序,例如在終端中執行時按下 CTRL-c,將終止推送操作。

在 docker push 期間會顯示進度條,顯示未壓縮大小。實際推送的資料量將在傳送前進行壓縮,因此進度條不會反映上傳大小。

登錄檔憑據由 docker login 管理。

併發上傳

預設情況下,Docker 守護程式將一次推送映象的五層。如果您的頻寬連線較低,這可能會導致超時問題,您可能希望透過 --max-concurrent-uploads 守護程式選項降低此值。有關更多詳細資訊,請參閱 守護程式文件

選項

選項預設值描述
-a, --all-tags將映象的所有標籤推送到倉庫
--disable-content-trusttrue跳過映象簽名
--platformAPI 1.46+ 將特定平臺的清單作為單平臺映象推送到登錄檔。
映象索引不會被推送,這意味著其他清單,包括證明,將不會被保留。
'os[/arch[/variant]]': 顯式平臺(例如 linux/amd64)
-q, --quiet抑制詳細輸出

示例

將新映象推送到登錄檔

首先透過查詢容器 ID(使用 docker container ls),然後將其提交到新的映象名稱來儲存新映象。請注意,在命名映象時只允許使用 a-z0-9-_.

$ docker container commit c16378f943fe rhel-httpd:latest

現在,使用映象 ID 將映象推送到登錄檔。在此示例中,登錄檔位於名為 registry-host 的主機上,並監聽埠 5000。為此,請使用主機名或 IP 地址以及登錄檔的埠標記映象。

$ docker image tag rhel-httpd:latest registry-host:5000/myadmin/rhel-httpd:latest

$ docker image push registry-host:5000/myadmin/rhel-httpd:latest

透過執行以下命令檢查是否成功

$ docker image ls

您應該會看到 rhel-httpdregistry-host:5000/myadmin/rhel-httpd 都已列出。

推送映象的所有標籤 (-a, --all-tags)

使用 -a(或 --all-tags)選項推送本地映象的所有標籤。

以下示例為映象建立多個標籤,並將所有這些標籤推送到 Docker Hub。

$ docker image tag myimage registry-host:5000/myname/myimage:latest
$ docker image tag myimage registry-host:5000/myname/myimage:v1.0.1
$ docker image tag myimage registry-host:5000/myname/myimage:v1.0
$ docker image tag myimage registry-host:5000/myname/myimage:v1

現在映象已標記為多個名稱

$ docker image ls

REPOSITORY                          TAG        IMAGE ID       CREATED      SIZE
myimage                             latest     6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   latest     6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   v1         6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   v1.0       6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   v1.0.1     6d5fcfe5ff17   2 hours ago  1.22MB

當使用 --all-tags 選項推送時,將推送 registry-host:5000/myname/myimage 映象的所有標籤。

$ docker image push --all-tags registry-host:5000/myname/myimage

The push refers to repository [registry-host:5000/myname/myimage]
195be5f8be1d: Pushed
latest: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1.0: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1.0.1: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527