假设我有一个我要标记为0.10.24
的图像(在我的例子中,它是包含Node.js 0.10.24的图像)。我使用Dockerfile构建该图像并执行docker build
并使用-t
参数提供标记。
我希望有一天我会有该图片的其他版本,所以我将重新运行该过程,只需使用另一个标记名称。
到目前为止,这么好。这很好,很好,一切都很好。
但是,这就是问题开始的地方,我还希望始终拥有最新的图片标记广告latest
。所以我想我需要给同一个图像分两个名字。
我该怎么做?我是否真的需要再次在完全相同的版本上重新运行docker build
,但这次使用另一个标签,是否有更好的选择?
答案 0 :(得分:189)
构建图像时可以有多个标记:
$ docker build -t whenry/fedora-jboss:latest -t whenry/fedora-jboss:v2.1 .
参考:https://docs.docker.com/engine/reference/commandline/build/#tag-image-t
答案 1 :(得分:147)
获得图像后,可以使用
$ docker tag <image> <newName>/<repoName>:<tagName>
使用creack / node:latest
构建和标记图像$ ID=$(docker build -q -t creack/node .)
添加新标记
$ docker tag $ID creack/node:0.10.24
您可以使用此功能并跳过构建
中的-t部分$ docker tag $ID creack/node:latest
答案 2 :(得分:31)
这是我的bash脚本
docker build -t ${IMAGE}:${VERSION} .
docker tag ${IMAGE}:${VERSION} ${IMAGE}:latest
如果使用
重建相同版本,则可以删除未标记的图像docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
或
docker rmi $(docker images | grep "^<none>" | tr -s " " | cut -d' ' -f3 | tr '\n' ' ')
或
清理命令:
Docker 1.13引入了清理命令。删除所有未使用的容器,图像,网络和卷:
docker system prune
或单独:
docker container prune
docker image prune
docker network prune
docker volume prune
答案 3 :(得分:19)
ID=$(docker build -t creack/node .)
对我不起作用,因为ID
将包含构建的输出。
所以我正在使用这个小BASH脚本:
#!/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
答案 4 :(得分:5)
亚伦答案的变化。 使用没有临时文件的sed
#!/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 :(得分:0)
嘿,这很简单,您只需要按照以下步骤操作即可 -
因此,要在 Docker 中创建和标记图像,我们可以使用以下命令
首先通过运行以下命令取出您的 Docker id
docker ps
复制 -> 名称
docker build -t dockerId/Name of your image you want:latest .
<块引用>
对我来说我用
docker build -t condescending_greider/newdoc:latest .
感谢您的时间