删除图像

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