【发布时间】:2021-04-29 22:00:41
【问题描述】:
我的项目包含一个用于构建映像的 Dockerfile。我已经对该 Dockerfile 进行了修改,并想看看它是否有效。所以我关闭了我的程序并使用docker image ls -a在powershell中列出了所有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是否显示运行映像的容器?您如何重新启动应用程序(您必须删除并重新创建容器以使其使用不同或更新的图像)? -
在尝试删除图像之前,
docker ps -a没有列出任何容器,并且 docker desktop 告诉我“没有容器正在运行”。我的程序使用 Kubernetes 来实例化它需要的容器,并在关闭时删除所有容器、pod 和命名空间。 -
不需要删除旧的,只需构建新的。显示构建新映像的步骤和输出。
标签: docker kubernetes docker-desktop