如何快速清理 Docker 中未使用的镜像、容器和卷?
发布网友
发布时间:2024-09-30 08:05
我来回答
共1个回答
热心网友
时间:2024-10-27 21:51
Docker 的高效管理有时会积累无用资源,如未使用的镜像、容器和卷。这里提供一份清理指南,帮助你通过命令行释放磁盘空间。
首先,执行 docker system prune 可以快速删除所有悬空资源,即那些没有关联到任何容器的镜像、容器、卷和网络。如果你想删除所有停止的容器和未使用的镜像,可加上 -a 标志。
针对特定镜像,执行 docker images -a 显示所有镜像,包括中间层。选择需要删除的镜像,然后用 docker rmi 命令,如 docker rmi $(docker images -q -a)。对于没有标签的镜像,可以使用 -f 标志强制删除。
查找并删除悬空镜像,使用 docker images -f dangling=true,然后用 docker image prune 删除。构建镜像时记得加上标签以避免成为悬空镜像。
通过 docker images -f 'dangling=true' | grep -q pattern | awk '{print $3}' | xargs docker rmi,可以依据模式搜索并删除镜像。
要删除所有镜像,用 docker images -a -q 获取镜像 ID,再用 docker rmi 删除。类似地,docker ps -a -q 可以找到并删除所有已退出或未运行的容器。
如果在容器创建时就希望退出后删除,可使用 docker run --rm。若要删除所有容器并停止,使用 docker stop $(docker ps -aq),然后删除。
卷的管理也类似,用 docker volume ls 查找,然后 docker volume rm 删除。对于悬空卷,用 docker volume ls -f dangling=true 定位,再用 docker volume prune 删除。
在删除容器时,若与卷关联,需分别操作。对于未命名的卷,可以与容器一起删除。如有疑问,Docker 文档是最佳参考来源。
通过这次整理,你应该能更有效地管理 Docker 系统资源,保持其整洁。如有更多问题或需要深入学习,请访问相关教程和官方文档。