如何删除docker镜像?



我的项目包括一个Dockerfile来构建一个映像。我已经修改了Dockerfile,想看看它是否有效。所以我关闭了我的程序,并使用docker image ls -a列出了powershell中的所有docker映像。我使用docker rmi -f $(docker images -a -q)docker image prune -a删除了所有未使用的图像。

但是我的图像保持而不是被删除,但只是'untagged':

Untagged: my_image:latest
Untagged: my_image@sha256:16eb92a476be0...

在尝试删除映像之前,将停止并删除所有容器。
当我重新启动应用程序构建新图像时,旧的图像继续被使用:

> docker image ls -a
REPOSITORY                     TAG           IMAGE ID            CREATED      
/my_image                      latest        0d79904a74b0        2 months ago

我如何实际删除旧的图像,以便我的应用程序可以建立一个新的?

首先,您需要删除/停止正在使用您的映像(您想要删除的映像)的运行容器。

  • docker ps -a:查看机器中所有正在运行的容器。
  • docker stop <container_id>:停止正在运行的容器
  • docker rm <container_id>:删除/删除docker容器(仅当它停止)。
  • docker image ls:查看所有可用图像及其标签,图像id,创建时间和大小的列表
  • docker rmi <image_id>:删除指定的图像。
  • docker rmi -f <image_id>:强制删除docker镜像
  • docker rm -f (docker ps -a | awk '{print$1}'):删除机器上所有可用的docker容器
  • docker image rm <image_name>:删除特定图像

要删除图像,您必须删除/停止所有正在使用它的容器。

  • docker system prune -a:清理docker环境,移除所有的容器和镜像。

最新更新