docker - 可以在不同版本上重复使用 Docker 标签吗?

标签 docker versioning

我构建、标记并发布了我的 Docker 镜像到 Quay:

docker build -t myapp .
docker tag <imageId> quay.io/myorg/myapp:1.0.0-SNAPSHOT
docker login quay.io
docker push quay.io/myorg/myapp:1.0.0-SNAPSHOT

然后我通过 SSH 连接到 Linux 服务器并运行:

sudo docker run -it -p 8080:80 -d --name myapp:1.0.0-SNAPSHOT quay.io/myorg/myapp:1.0.0-SNAPSHOT

myapp 容器开始正常运行。

我现在想插入一些更改以进行非本地测试(在同一台 Linux 服务器上),如果可能的话,我想重新使用相同的标签 (1.0.0-SNAPSHOT)。我可以重建、重新标记(使用相同的 1.0.0-SNAPSHOT 标记)并重新发布 myorg/myapp:1.0.0-SNAPSHOT 到 Quay,然后拉取+ 运行它并让 Docker 接收更改?还是我需要构建/标记/发布1.0.1-SNAPSHOT(或类似的)新版本?

最佳答案

您可以在不同的构建版本上重复使用标签。它实际上与 latest 标签没有任何不同(除了 latest 是默认的,如果你不提供标签的话)。主要问题是确保您提取实际的最新版本。由于各种原因,您的 Docker 客户端可能不会发现远程已更改,因此如果想重新使用该标签并确保您使用的是特定构建,您可以使用 sha256 哈希,例如,docker pull我的/image@sha256:45b23dee08af5e43a7...

参见 Docker docs here .

关于docker - 可以在不同版本上重复使用 Docker 标签吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48876985/

相关文章:

node.js - 支持一个或两个或两个命令的 Docker 入口点脚本(即 npm config 和 npm run)

docker - 使用 distroless 基础镜像构建多阶段 docker 镜像会导致 "no such file or directory"错误

Swift - 如何弃用 SPM 库中的函数

windows - 可执行文件的名称中是否应包含版本号?

java - 如何根据 javac -version 输出确定 JDK 版本?

api - 当您可以实现版本控制时,为什么开发人员对发布 API 如此珍贵?

docker - 有没有办法在 docker 和 nginx 中使用 nextjs

docker - 我可以在 Windows 7 上使用 docker-toolbox 运行 Windows 容器吗?

r - 无法在docker镜像中安装R包

java - 哪些更改会使序列化类版本不兼容?