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-trust | true | 跳過映象簽名 |
--platform | API 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-httpd
和 registry-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