删除图像
docker rmi
命令用于删除图像:
docker rmi <image name>
必须使用完整的图像名称来删除图像。除非已标记图像以删除注册表名称,否则需要指定它。例如:
docker rmi registry.example.com/username/myAppImage:1.3.5
也可以通过 ID 删除图像:
docker rmi 693bce725149
为方便起见,只要指定的子字符串是明确的,就可以通过仅指定图像 ID 的前几个字符来按图像 ID 删除图像:
docker rmi 693
注意: 即使存在使用该图像的容器,也可以删除图像; docker rmi 只是解开图像。
如果没有容器正在使用图像,则会对其进行垃圾回收。如果容器使用图像,则在删除使用它的所有容器后,将对图像进行垃圾收集。例如:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b hello-world "/hello" Less than a second ago Exited (0) 2 seconds ago small_elion
$ docker rmi hello-world
Untagged: hello-world:latest
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b 693bce725149 "/hello" Less than a second ago Exited (0) 12 seconds ago small_elion
删除所有未启动容器的图像
要删除所有没有已启动容器的本地映像,可以提供映像列表作为参数:
docker rmi $(docker images -qa)
删除所有图像
如果要删除图像而不管它们是否具有已启动的容器,请使用 force 标志(-f
):
docker rmi -f $(docker images -qa)
删除悬空图像
如果图像没有被标记并且没有被任何容器使用,那么它就是晃来晃去,可能会像这样删除:
docker images -q --no-trunc -f dangling=true | xargs -r docker rmi