我的项目包括一个Dockerfile以构建镜像。我对该Dockerfile进行了修改并希望查看是否有效。因此,我关闭了我的程序,并在PowerShell中使用 docker image ls -a
列出了所有的Docker镜像。然后我使用 docker rmi -f $(docker images -a -q)
和 docker image prune -a
删除了所有未使用的镜像。
但是我的镜像仍然没有被删除,只是被“取消标记”:
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
会显示正在运行该镜像的容器吗?你是如何重启应用程序的(必须删除并重新创建容器以使用不同或更新的镜像)? - David Mazedocker ps -a
不会列出任何容器,并且Docker桌面会显示“没有正在运行的容器”。我的程序使用Kubernetes来实例化所需的容器,并在关闭时删除所有容器、Pod和命名空间。 - tdragojevic