清理 Docker 镜像和容器是保持系统整洁和释放磁盘空间的重要步骤。以下是一些命令和方法来清理 Docker 镜像和容器:
清理容器:
-
列出所有容器:
docker ps -a
-
停止所有运行中的容器:
docker stop $(docker ps -aq)
这个命令会停止所有正在运行的容器。
-
删除所有已停止的容器:
docker rm $(docker ps -aq)
这个命令会删除所有已停止的容器。
-
删除单个容器:
docker rm <container_id_or_name>
只删除指定的容器。
清理镜像:
-
列出所有镜像:
docker images -a
-
删除所有未被使用的镜像:
docker image prune
这个命令会删除所有未被使用的镜像,即那些没有被任何容器引用的镜像。
-
删除指定的镜像:
docker rmi <image_id_or_name>
删除单个指定的镜像。
-
删除所有镜像(慎用!):
docker rmi $(docker images -q)
这个命令会删除所有镜像,包括正在使用的镜像。请谨慎使用这个命令。
自动清理工具:
Docker 还提供了一些自动清理工具,可以定期清理不需要的镜像和容器,其中一个是:
-
Docker 垃圾回收器(Docker Garbage Collector):在 Docker 17.06 之后的版本中,Docker 提供了一个内置的垃圾回收工具,可以定期清理未使用的资源。
docker system prune
这个命令将会提示你删除未使用的容器、镜像和网络。你也可以通过
docker system prune -a
删除所有未使用的数据。
请谨慎使用这些命令,确保你知道哪些资源是你想要清理的。特别是,避免意外删除正在使用的容器和镜像,以免造成系统问题。
prune命令
docker prune
命令用于清理 Docker 系统中不再使用的资源,包括容器、镜像、卷和网络等。以下是一些与 docker prune
相关的命令和参数的详细说明:
-
清理未使用的容器、镜像、网络和卷:
docker system prune
这个命令将删除未使用的容器、镜像、网络和卷。
-
清理未使用的容器:
docker container prune
这个命令将删除所有未运行的容器。
-
清理未使用的镜像:
docker image prune
这个命令将删除未被任何容器引用的镜像。
-
清理未使用的卷:
docker volume prune
这个命令将删除未被任何容器引用的卷。
-
清理未使用的网络:
docker network prune
这个命令将删除未被任何容器引用的网络。
-
强制清理:
以上命令都可以添加
--force
或-f
参数来强制执行清理操作,而无需确认。docker system prune --force
-
清理指定过期时间前的资源:
使用
--filter
参数可以指定过期时间,在清理时只删除在该过期时间之前创建的资源。过期时间的格式可以是timestamp
、timestamp=YYYY-MM-DDTHH:MM:SS
或timestamp=YYYY-MM-DD
.docker container prune --filter "until=24h"
这个命令将删除 24 小时之前未运行的容器。
-
清理指定标签的镜像:
使用
--filter
参数结合标签可以删除特定标签的镜像。docker image prune --filter "label=mylabel"
这个命令将删除标签为
mylabel
的镜像。
这些命令和参数可以帮助你有效地管理 Docker 系统,清理不再需要的资源,释放磁盘空间,保持系统整洁。