如何在 Docker 中创建命名和最新标签?

新手上路,请多包涵

假设我有一个我想标记为 0.10.24 的图像(在我的例子中,它是一个包含 Node.js 0.10.24 的图像)。我使用 Dockerfile 构建该映像并执行 docker build 并使用 -t 参数提供标签。

我希望有一天我会拥有该图像的其他版本,因此我将使用另一个标签名称重新运行该过程。

到目前为止,一切都很好。这很好用,一切都很好。

但是,这就是问题开始的地方,我还希望始终将最新的图像标记为广告 latest 另外。所以我想我需要给同一张图片起两个名字。

我该怎么做呢?我真的需要再次在完全相同的版本上重新运行 docker build ,但是这次使用另一个标签,有没有更好的选择?

原文由 Golo Roden 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 477
2 个回答

构建镜像时可以有多个标签:

 $ docker build -t whenry/fedora-jboss:latest -t whenry/fedora-jboss:v2.1 .

参考: https ://docs.docker.com/engine/reference/commandline/build/#tag-image-t

原文由 Tommy 发布,翻译遵循 CC BY-SA 3.0 许可协议

一旦你有了你的形象,你可以使用

$ docker tag <image> <newName>/<repoName>:<tagName>

  1. 使用 creack/node:latest 构建和标记图像
   $ ID=$(docker build -q -t creack/node .)

  1. 添加新标签
   $ docker tag $ID creack/node:0.10.24

  1. 您可以使用它并从构建中跳过 -t 部分
   $ docker tag $ID creack/node:latest

原文由 creack 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题