Docker删除本地所有镜像

删除所有容器和镜像

对于 Unix

删除包括其卷在内的所有容器

1
docker rm -vf $(docker ps -aq)

删除所有镜像

1
docker rmi -f $(docker images -aq)

请先删除所有容器,再删除创建这些容器的所有镜像。

对于 Windows(pwsh)

如果在 Windows (Powershell) 上操作

1
2
$images = docker images -a -q
foreach ($image in $images) { docker image rm $image -f }

也可以按如下写法:

1
docker images -a -q | % { docker image rm $_ -f }

对于使用命令行的 Windows,

1
for /F %i in ('docker images -a -q') do docker rmi -f %i

删除所有未使用的 Docker 对象

删除所有停止的容器、悬空的图像和未使用的网络

1
docker system prune

使用-f( --force) 选项绕过提示。

如果要删除所有未使用的镜像而不仅仅是玄虚镜像,请在命令中添加-a参数(--all

1
docker system prune -a

默认情况下,该命令不会删除未使用的卷以防止丢失重要数据。

要删除所有未使用的卷,使用--volumes参数:

1
docker system prune --volumes

删除 Docker 容器

移除一个或多个容器

要删除一个或多个 Docker 容器,使用docker container rm命令,后面跟要删除的容器的 ID。

1
docker container rm xxxxxx xxxxxx

查看所有容器列表

1
docker container ls -a

删除所有停止的容器

删除所有停止的容器

1
docker container prune

列出所有停止容器的列表

1
docker container ls -a --filter status=exited --filter status=created

使用过滤器移除容器

例如,要删除 12 小时前创建的所有图像:

1
docker container prune --filter "until=12h"

停止并移除所有容器

停止所有正在运行的容器

1
docker container stop $(docker container ls -aq)

停止所有容器后,删除所有容器

1
docker container rm $(docker container ls -aq)

删除 Docker 镜像

下载Docker镜像后,会一直保留在服务器上,需要手动删除

删除镜像

要删除一个或多个 Docker 镜像,首先需要找到镜像的 ID:

1
docker image ls

删除镜像

1
docker image rm xxxxxx xxxxxx

Error response from daemon: conflict: unable to remove repository reference “centos” (must force) - container cd20b396a061 is using its referenced image 75835a67d134

需要先删除使用此镜像的容器

删除玄虚镜像

玄虚镜像是未标记且未被任何容器使用的镜像。

1
docker image prune

运行此命令时要小心。如果你构建的图像没有标签,它将被删除。

删除所有未使用的镜像

要删除任何现有容器未引用的所有图像

1
docker image prune -a

使用过滤器删除图像

例如,要删除超过 7 天(168 小时)前创建的所有图像

1
docker image prune -a --filter "until=168h"

删除 Docker Volume

删除一个或多个卷

删除一个或多个 Docker 卷,列出所有卷

1
docker volume ls

根据卷ID删除

1
docker volume rm xxxxx

删除所有未使用的卷

删除所有未使用的卷

1
docker volume prune -f

删除 Docker 网络

删除一个或多个 Docker 网络

查找要删除的网络ID

1
docker network ls

根据ID删除网络

1
docker network rm c520032c3d31

删除所有未使用的网络

删除所有未使用的网络

1
docker network prune