百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> 怎样清算docker占用的资源
分享文章到:

怎样清算docker占用的资源

发布时间:01/01 来源:未知 浏览: 关键词:

前言:

经常使用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:

$ docker system prune

dbc7bdbe4f3cd5983bb2bb5f02a379e.png

平安起见,这个命令默许不会删除那些未被任何容器援用的数据卷,假如需要同时删除这些数据卷,你需要显式的指定 --volumns 参数。比方你大概想要施行下面的命令:

$ 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,这样删除的就是某类资源:

docker container prune # 删除所有退出状态的容器
docker volume prune # 删除未被使用的数据卷
docker image prune # 删除 dangling 或所有未被使用的镜像

让 docker 回到安置时的状态

这里的 "安置时的状态" 指资源占用状况而不是 docker 的相关配置。这也是一种比力常见的用例,比方笔者就需要在一个洁净的 docker 环境中主动化的复原出某天的一个生产环境(使用生产环境的备份数据)用于 bug 观察。让我们一起来看看都需要做些什么?
回想我们前面介绍的 docker system prune --all --force --volumns 命令,假如在施行这个命令前系统中所有的容器都已休止,那么这个命令就会移除所有的资源!好,此刻让我们想方法停掉系统中的所有容器。

docker container stop 命令可以休止一个或多个容器,我们只需要把系统中所有在运转的容器排列出来就可以了。由于 docker 并不介意我们再次休止一个已经休止了的容器,干脆简便粗暴点,直接列出所有的容器(包罗已经休止的)!

$ docker container ls -a -q

7db04d0fc44f99d7307ce35eb50fdae.png

-a 显示所有的容器,-q 只显示数字情势的容器 ID。
然后把这里命令施行的结果作为 docker container stop 命令的参数:

$ docker container stop $(docker container ls -a -q)

完全的复原 docker 环境的命令如下:

$ docker container stop $(docker container ls -a -q) && docker system prune --all --force --volumns

和前面的 prune 命令相似,也可以完全删除某一类资源:
删除容器:docker container rm $(docker container ls -a -q)
删除镜像:docker image rm $(docker image ls -a -q)
删除数据卷:docker volume rm $(docker volume ls -q)
删除 network:docker network rm $(docker network ls -q)

创立 shell 别号

上面的命令可以完成任务但是却很繁琐,我们可以通过 shell 的别号功效来简化这些命令的施行。

alias docker-clean-unused='docker system prune --all --force --volumes'alias docker-clean-all='docker stop $(docker container ls -a -q) && docker system prune --all --force --volumes'

把上面的命令写入到会员的 ~/.bashrc 文件中就可以了!

5782c8971df68f88991bdbb59151053.png

施行一次清算任务:

400d3776b6377687d8b72799e633485.png

总结

经常清算系统资源不仅能够让系统运转的更流畅,也利于我们把精神集中在相关的重点资源上面。所以倡议大家能够使用相关的资源清算命令,让 docker 保持清新和高效。

相关引荐:docker入门教程

以上就是怎样清算docker占用的资源的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

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

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

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

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板