更新生成孤儿图像的泊坞窗图像

时间:2015-02-02 03:29:21

标签: docker

我可以用

docker build -t yzx2003209/my_image .

建立一个由 yzx2003209 / my_image标记的新图片:最新

但是,原来的 yzx2003209 / my_image:latest 会变成< none> 图像,我必须手动rmi这个孤儿图像。

有没有办法在不手动删除孤立图像的情况下更新图像?

1 个答案:

答案 0 :(得分:2)

无法更新图像 - 图像是不可变的 - 当您执行生成不同图像的docker build时,它也会在那里移动标记 - 旧图像本身没有任何变化 - 它只是不再有标记了。如果要删除所有此类图像,可以在docker build之后执行下一个命令:

docker build -t yzx2003209/my_image .
docker rmi `docker images -q --filter "dangling=true"`

此命令将删除没有标记的所有图像。或者您可以按照不同的顺序执行此操作 - 在Docker构建之前删除旧图像 - 虽然它仍然有标记:

docker rmi yzx2003209/my_image
docker build -t yzx2003209/my_image .

但是如果您的构建失败,您将没有图像。您可以在构建之前获取图像ID,并在成功构建后删除图像:

old=`docker images -q yzx2003209/my_image`
docker build -t yzx2003209/my_image .
docker rmi $old

您还可以使用--rm选项在成功构建后删除中间容器:

docker build --rm -t yzx2003209/my_image .
docker rmi `docker images -q --filter "dangling=true"`