我知道Dockerfile中有一个LABEL可用。但我想知道如何在图像构建后为图像添加其他标签?这可能吗?
答案 0 :(得分:2)
确实不可能在现有图像上添加标签。严格来说,添加标签会更改图像的校验和,从而更改其ID,因此不再是同一张图像。
但是您可以在现有图像上构建基于图像的 并添加标签,然后使用先前存在的图像的名称标记该图像。 从技术上讲,它会在现有图像之上添加一层,从而仅“覆盖”先前的标签。
也可以用一个命令来完成。假设您要为图像“ debian:latest”添加标签,则可以构建该图像的 FROM 并同时标记新图像。
echo "FROM debian:latest" | docker build --label my_new_label="arbitrary value" -t "debian:latest" -
证明“添加”标签有效:
$ docker inspect -f "{{json .Config.Labels }}" debian:latest
{"my_new_label":"arbitrary value"}
答案 1 :(得分:0)
docker背后的想法是你有一个Dockerfile,很容易再次构建你的图像,添加一个LABEL。
你可以破解图像,但这不值得工作。
稍微修改你的Dockerfile,然后重新运行
docker build -t mytag .