首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Docker中创建命名标签和最新标签?

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

Stack Overflow用户
提问于 2014-02-28 05:22:13
回答 3查看 283.4K关注 0票数 308

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

我希望有一天我会有该镜像的其他版本,所以我将使用另一个标记名重新运行该过程。

到现在为止还好。这工作得很好,一切都很好。

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-04 16:57:58

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

代码语言:javascript
复制
$ docker build -t whenry/fedora-jboss:latest -t whenry/fedora-jboss:v2.1 .

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

票数 345
EN

Stack Overflow用户

发布于 2014-11-05 19:00:45

因为ID将包含构建的输出,所以ID=$(docker build -t creack/node .)不适用于我。

所以我使用了这个小的BASH脚本:

代码语言:javascript
复制
#!/bin/bash

set -o pipefail

IMAGE=...your image name...
VERSION=...the version...

docker build -t ${IMAGE}:${VERSION} . | tee build.log || exit 1
ID=$(tail -1 build.log | awk '{print $3;}')
docker tag $ID ${IMAGE}:latest

docker images | grep ${IMAGE}

docker run --rm ${IMAGE}:latest /opt/java7/bin/java -version
票数 21
EN

Stack Overflow用户

发布于 2015-07-30 21:42:55

Aaron答案的变体。使用没有临时文件的sed

代码语言:javascript
复制
#!/bin/bash
VERSION=1.0.0
IMAGE=company/image
ID=$(docker build  -t ${IMAGE}  .  | tail -1 | sed 's/.*Successfully built \(.*\)$/\1/')

docker tag ${ID} ${IMAGE}:${VERSION}
docker tag -f ${ID} ${IMAGE}:latest
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22080706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档