docker image push(推送 Docker 映像檔)
說明 | 將映像檔上傳到倉庫 |
---|---|
用法 | docker image push [選項] 名稱[:標籤] |
別名 | docker push |
說明
使用 `docker image push` 將您的映像檔分享到 Docker Hub 參考,以取得更多關於有效映像檔和標籤名稱的資訊。
終止 `docker image push` 程序(例如,在終端機中執行時按下 `CTRL-c`)會終止推送操作。
docker push 期間會顯示進度條,顯示未壓縮的大小。實際推送的資料量會在發送前壓縮,因此上傳的大小不會反映在進度條中。
倉庫憑證由 docker login(Docker 登入) 管理。
並行上傳
預設情況下,Docker 常駐程式會一次推送五層映像檔。如果您使用的是低頻寬連線,這可能會導致逾時問題,您可能需要透過常駐程式選項 `--max-concurrent-uploads` 降低此數量。請參閱 常駐程式說明文件 以取得更多詳細資訊。
選項
選項 | 預設值 | 說明 |
---|---|---|
-a, --all-tags(所有標籤) | 將映像檔的所有標籤推送至倉庫 | |
--disable-content-trust(停用內容信任) | true(真) | 略過映像檔簽署 |
--platform(平台) | API 1.46+ 將特定平台的 manifest 作為單平台映像檔推送至倉庫。 映像檔索引將不會被推送,這表示其他 manifest(包括證明)將不會被保留。 '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