Docker push:使用多个标签一次推送图像

mtk*_*nko 4 docker

我有一个码头工人形象有三个标签repo:latestrepo:v1.1repo:dev。当我这样做时,docker push repo:v1.1只会将一个标签推入存储库。有没有办法对所有标签进行一次推送,或者我需要按标签进行推送?

小智 9

如果要推送图像的所有标签,可以使用以下--all-tags选项:

docker image push --all-tags repository/image_name
Run Code Online (Sandbox Code Playgroud)

Docker 20.10 和更新版本支持此选项。通过省略--all-tags旧版本可以实现相同的行为。


更多信息:Docker 推送文档

  • 不幸的是,迁移到 Docker 20.10+ 确实会引入一个重大变化,因为与以前的版本相反,只推送第一个标签,但这样可以更安全地控制我们真正想做的事情 (3认同)

Eri*_*kMD 5

搬运工推命令不接受几个标签作为参数,所以你需要单独推动每个标签,例如:

for t in repo:latest repo:v1.1 repo:dev; do
    docker push "${t}"
done
Run Code Online (Sandbox Code Playgroud)

还请注意,经常考虑为同一张图片推送多个不同的标签(在这里也可能是您的用例)。在这种情况下,连续推入这些标签(而不是同时进行多个并发处理)可确保在docker push使用给定标签将图像推入一次后,标签同义词的作用几乎是立即的。

  • 为什么投反对票?如果有人想一次性推送多个标签(不是全部)的选择,则“docker push image:tag1 image:tag2”仍然不可用。然而,正如 @GuillaumePancak 的回答所指出的,`--all-tags` CLI 选项可能很有用。将编辑我的答案以链接到该答案。 (3认同)