如何清理docker占用的资源


本文摘自PHP中文网,作者V,侵删。

前言:

经常使用docker的朋友都知道,docker占用资源的速度很快,最明显也最容易察觉的就是对磁盘空间的占用。那么我们该如何清理docker占用的系统资源呢?

(学习视频分享:编程入门)

方法如下:

查看 docker 占用的资源

在进行资源清理之前我们有必要搞清楚 docker 都占用了哪些系统的资源。这需要综合使用不同的命令来完成。
docker container ls:默认只列出正在运行的容器,-a 选项会列出包括停止的所有容器。
docker image ls:列出镜像信息,-a 选项会列出 intermediate 镜像(就是其它镜像依赖的层)。
docker volume ls:列出数据卷。
docker network ls:列出 network。
docker info:显示系统级别的信息,比如容器和镜像的数量等。

通过这些命令查看 docker 使用的资源情况后,相信你已经决定要清理 docker 占用的一些资源了!让我们先从那些未被使用的资源开始。

只删除那些未被使用的资源

Docker 提供了方便的 docker system prune 命令来删除那些已停止的容器、dangling 镜像、未被容器引用的 network 和构建过程中的 cache:

1

$ docker system prune

dbc7bdbe4f3cd5983bb2bb5f02a379e.png

安全起见,这个命令默认不会删除那些未被任何容器引用的数据卷,如果需要同时删除这些数据卷,你需要显式的指定 --volumns 参数。比如你可能想要执行下面的命令:

1

$ docker system prune --all --force --volumes

这次不仅会删除数据卷,而且连确认的过程都没有了!注意,使用 --all 参数后会删除所有未被引用的镜像而不仅仅是 dangling 镜像。
这里有必要解释一下何为 dangling images,其实可以简单的理解为未被任何镜像引用的镜像。比如在你重新构建了镜像后,那些之前构建的且不再被引用的镜像层就变成了 dangling images:

177f2ba644af3cfc2a9c999d30a726e.png

在本地的镜像更新之后,就会出现类似图中红框内的 <none> 镜像。这表示旧的镜像已经不再被引用了,此时它们就变成了 dangling images。如果使用 -a 参数,你还会发现另外一种类型的 <none> 镜像,它们的 repository 和 tag 列都表现为 <none>:

1ded2f4f540c0947591d63b4eaa03cc.png

这些镜像被称为 intermediate 镜像(就是其它镜像依赖的层)。

我们还可在不同在子命令下执行 prune,这样删除的就是某类资源:

1

2

3

docker container prune # 删除所有退出状态的容器

docker volume prune # 删除未被使用的数据卷

docker image prune # 删除 dangling 或所有未被使用的镜像

让 docker 回到安装时的状态

阅读剩余部分

相关阅读 >>

Docker怎么查看容器服务状态

k8s 安装部署步骤

如何给Docker容器配置ip

怎么查看映射Docker容器的路径

Docker 和 mysql 区别?

Docker如何通过代理上网

Docker容器编码方式设置错误

Docker怎么正确部署tomcat及web应用

怎么更换Docker的存储目录

怎样查看linux中Docker镜像文件

更多相关阅读请进入《Docker》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...