如果经常使用 docker,会发现 docker 占用的资源膨胀很快,docker 提供了对无用的镜像、容器、网络和数据卷快速清理指令。
通过查看 docker 占用的资源情况,来决定那些资源是需要清理的。
docker container ls:默认只列出正在运行的容器,-a 选项会列出包括停止的所有容器;
docker image ls:列出镜像信息,-a 选项会列出 intermediate 镜像(就是其它镜像依赖的层);
docker volume ls:列出数据卷;
docker network ls:列出 network;
docker info:显示系统级别的信息,比如容器和镜像的数量等;
docker system prune 指令用于删除那些已停止的容器、dangling 镜像、未被容器引用的 network 和构建过程中的 cache(该指令默认不会删除未被任何容器引用的数据卷):
docker system prune
# 删除未被引用资源(包含未被引用的数据卷)
docker system prune --volumes
# 删除所有资源(包含数据卷)
docker system prune --all --volumes
对于镜像、容器、数据卷、网络也有各自的快速清理指令:
docker container prune # 删除所有退出状态的容器
docker volume prune # 删除未被使用的数据卷
docker image prune # 删除 dangling 或所有未被使用的镜像