
腾讯云3年/5年服务器:点击抢每日限量秒杀名额 | 阿里云服务器99元/年:速抢优惠名额 |
腾讯云双十一:点击速抢9999元代金券 | 阿里云双十一:点击速抢5580元满减券 |
腾讯云新客无门槛满减券:限量速抢 | 阿里云活动中心优惠券:点击速抢 |
本文主要介绍如何清理码头工人资源,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章,收获多多。让本站带你去了解一下。
如果你经常使用docker,你会发现docker占用的资源迅速膨胀,最明显最引人注目的就是磁盘空间的占用。本文将介绍如何快速清理docker占用的系统资源,特别是删除无用的图像、容器、网络和数据卷。
查看 docker 占用的资源
在清理资源之前,我们有必要找出码头工人占用了哪些系统资源。这需要不同命令的组合。
Docker容器:默认情况下,只列出正在运行的容器,并且-a选项列出所有容器,包括停止的容器。
Docker image ls:列出图像信息,-a选项列出中间图像(即其他图像所依赖的图层)。
列出数据卷。
列出网络。
Docker info:显示系统级信息,如容器和图像的数量。
通过这些命令查看了docker使用的资源,相信你已经决定清理docker占用的一些资源了!先说没用的资源。
只删除那些未被使用的资源
Docker提供了方便的docker系统清理命令,用于删除停止的容器、悬空图像、容器未引用的网络以及构建期间的缓存:
$ dockerssystemprune
出于安全原因,默认情况下,此命令不会删除任何容器都不引用的数据卷。如果需要同时删除这些数据卷,则需要显式指定-volumens参数。例如,您可能希望执行以下命令:
$ Dockersystemprune-all-force-volumens这次不仅会删除数据卷,而且没有确认过程!请注意,使用- all参数将删除所有未引用的镜像,而不仅仅是悬挂镜像。
在这里,有必要解释一下什么是悬空图像。事实上,它们可以简单地理解为没有任何图像引用的图像。例如,在重建图像后,以前构建的和不再引用的图像图层将变成悬空图像:
更新本地镜像后,将出现一个类似于图中红色框的无镜像。这意味着旧图像不再被引用,然后它们变成悬空图像。如果使用-a参数,您还会发现另一种类型的无图像,其存储库和标记列都表示为无:
这些图像称为中间图像(即其他图像所依赖的层)。
我们还可以在不同的子命令下执行修剪,以便删除某些资源:
Docker容器删除#删除所有处于退出状态的容器
Docker卷清理#删除未使用的数据卷
Docker图像修剪#删除悬挂或所有未使用的图像
让 docker 回到安装时的状态
这里的“安装状态”指的是资源占用情况,而不是docker的相关配置。这也是一个常见的用例。例如,作者需要在干净的docker环境中自动恢复生产环境(使用生产环境的备份数据),以便进行错误调查。让我们看看需要做什么。
回想一下我们前面介绍的Docker System Prune-all-force-volumns命令,如果系统中的所有容器在执行此命令之前都已经停止,那么此命令将删除所有资源!好了,现在让我们想办法停止系统中的所有容器。
码头集装箱停止命令可以
以停止一个或多个容器,我们只需要把系统中所有在运行的容器罗列出来就可以了。由于 docker 并不介意我们再次停止一个已经停止了的容器,干脆简单粗暴点,直接列出所有的容器(包括已经停止的)!
$dockercontainerls-a-q
-a 显示所有的容器,-q 只显示数字形式的容器 ID。
然后把这里命令执行的结果作为 docker container stop 命令的参数:
$dockercontainerstop$(dockercontainerls-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 的别名功能来简化这些命令的执行。
aliasdocker-clean-unused='dockersystemprune--all--force--volumes' aliasdocker-clean-all='dockerstop$(dockercontainerls-a-q)&&dockersystemprune--all--force--volumes'
把上面的命令写入到用户的 ~/.bashrc 文件中就可以了!
执行一次清理任务:
感谢你能够认真阅读完这篇文章,希望小编分享的“怎么清理docker资源的方法”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!


8核16G CVM服务器S5 3048元/15个月:点此直达
注意:以上特价轻量服务器限制条件为“产品首单特惠”,如果你的腾讯云账号已经是老用户,建议重新注册一个腾讯云账号,如果你是新用户符合条件,那么无脑入,这个CPU内存带宽配置,价格确实便宜,值得买!
