Docker 'latest' 标记和推送
Docker 'latest' Tagging and Pushing
我的构建过程生成了一个 docker 图像。我希望使用标签构建 ID 和 'latest' 来标记最新的构建映像。我看到有两种方法可以做到这一点。
第一种方法-(添加多个标签并推送一次)
docker tag <id> <user>/<image>:build_id
docker tag <id> <user>/<image>:latest
docker push <user>/<image>
第二 - 单独标记并推送
docker tag <id> <user>/<image>:build_id
docker push <user>/<image>:build_id
docker tag <id> <user>/<image>:latest
docker push <user>/<image>:latest
docker 文档说如果注册表中已经有一个带有特定标签的图像,那么 docker 使用具有相同标签的新图像推送会覆盖早期的图像。
- 上面指定的第一个选项和第二个选项在功能上是否相同?
- 有什么首选的way/Best做法吗?
(关于问题的原始版本,它使用 docker push
没有参数)除非您提供存储库名称,否则 docker push
将不起作用。
$ docker push
"docker push" requires exactly 1 argument.
See 'docker push --help'.
Usage: docker push [OPTIONS] NAME[:TAG] [flags]
Push an image or a repository to a registry
这意味着,您需要使用存储库名称进行推送。您可以提供或不提供 TAG。
如果您不提供 TAG,则您将推送该存储库的所有图像。
在第一种方法中,您将所有图像推送到<user>/<image>
存储库下。
在第二种方法中,您正在一张一张地推送图像。
问题的答案
- Are both First and Second Option specified above functionally the same?
上面指定的第一个和第二个选项在功能上是相同的(在您的情况下)。
如果您不提供 TAG,则您将推送该存储库的所有图像。
你的情况
$ docker push <user>/<image>
将推送 TAG build_id
和 latest
- Is there any preferred way/Best practice?
我认为,第二个选项更好,也是首选
因为,您可能不想推送所有图像。在这种情况下,您可以按照第二种方法选择要推送的图像。
我的构建过程生成了一个 docker 图像。我希望使用标签构建 ID 和 'latest' 来标记最新的构建映像。我看到有两种方法可以做到这一点。
第一种方法-(添加多个标签并推送一次)
docker tag <id> <user>/<image>:build_id
docker tag <id> <user>/<image>:latest
docker push <user>/<image>
第二 - 单独标记并推送
docker tag <id> <user>/<image>:build_id
docker push <user>/<image>:build_id
docker tag <id> <user>/<image>:latest
docker push <user>/<image>:latest
docker 文档说如果注册表中已经有一个带有特定标签的图像,那么 docker 使用具有相同标签的新图像推送会覆盖早期的图像。
- 上面指定的第一个选项和第二个选项在功能上是否相同?
- 有什么首选的way/Best做法吗?
(关于问题的原始版本,它使用 docker push
没有参数)除非您提供存储库名称,否则 docker push
将不起作用。
$ docker push
"docker push" requires exactly 1 argument.
See 'docker push --help'.
Usage: docker push [OPTIONS] NAME[:TAG] [flags]
Push an image or a repository to a registry
这意味着,您需要使用存储库名称进行推送。您可以提供或不提供 TAG。
如果您不提供 TAG,则您将推送该存储库的所有图像。
在第一种方法中,您将所有图像推送到<user>/<image>
存储库下。
在第二种方法中,您正在一张一张地推送图像。
问题的答案
- Are both First and Second Option specified above functionally the same?
上面指定的第一个和第二个选项在功能上是相同的(在您的情况下)。
如果您不提供 TAG,则您将推送该存储库的所有图像。
你的情况
$ docker push <user>/<image>
将推送 TAG build_id
和 latest
- Is there any preferred way/Best practice?
我认为,第二个选项更好,也是首选
因为,您可能不想推送所有图像。在这种情况下,您可以按照第二种方法选择要推送的图像。