更新 docker 个图像导致孤立图像
Update docker image resulting in orphan image
我可以用
docker build -t yzx2003209/my_image .
构建由 yzx2003209/my_image:latest
标记的新图像
但是,原来的 yzx2003209/my_image:latest 会变成 图片,我有手动 rmi 这个孤儿图像。
有什么方法可以只更新图像而无需手动删除孤立图像?
无法更新图像 - 图像是不可变的 - 当你执行 docker 生成不同图像的构建时,它也会将标签移动到那里 - 旧图像本身没有任何变化 - 它只是没有一个标签了。如果你想删除所有这些图像,你可以在 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"`
我可以用
docker build -t yzx2003209/my_image .
构建由 yzx2003209/my_image:latest
标记的新图像但是,原来的 yzx2003209/my_image:latest 会变成
有什么方法可以只更新图像而无需手动删除孤立图像?
无法更新图像 - 图像是不可变的 - 当你执行 docker 生成不同图像的构建时,它也会将标签移动到那里 - 旧图像本身没有任何变化 - 它只是没有一个标签了。如果你想删除所有这些图像,你可以在 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"`