怎么清理docker资源的方法

2022年 10月 17日 发表评论
腾讯云正在大促:点击直达 阿里云超级红包:点击领取
免费/便宜/高性价比服务器汇总入口(已更新):点击这里了解

本文主要介绍如何清理码头工人资源,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章,收获多多。让本站带你去了解一下。

如果你经常使用docker,你会发现docker占用的资源迅速膨胀,最明显最引人注目的就是磁盘空间的占用。本文将介绍如何快速清理docker占用的系统资源,特别是删除无用的图像、容器、网络和数据卷。

查看 docker 占用的资源

在清理资源之前,我们有必要找出码头工人占用了哪些系统资源。这需要不同命令的组合。

Docker容器:默认情况下,只列出正在运行的容器,并且-a选项列出所有容器,包括停止的容器。

Docker image ls:列出图像信息,-a选项列出中间图像(即其他图像所依赖的图层)。

列出数据卷。

列出网络。

Docker info:显示系统级信息,如容器和图像的数量。

通过这些命令查看了docker使用的资源,相信你已经决定清理docker占用的一些资源了!先说没用的资源。

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

Docker提供了方便的docker系统清理命令,用于删除停止的容器、悬空图像、容器未引用的网络以及构建期间的缓存:

$ dockerssystemprune怎么清理docker资源的方法

出于安全原因,默认情况下,此命令不会删除任何容器都不引用的数据卷。如果需要同时删除这些数据卷,则需要显式指定-volumens参数。例如,您可能希望执行以下命令:

$ Dockersystemprune-all-force-volumens这次不仅会删除数据卷,而且没有确认过程!请注意,使用- all参数将删除所有未引用的镜像,而不仅仅是悬挂镜像。

在这里,有必要解释一下什么是悬空图像。事实上,它们可以简单地理解为没有任何图像引用的图像。例如,在重建图像后,以前构建的和不再引用的图像图层将变成悬空图像:

怎么清理docker资源的方法

更新本地镜像后,将出现一个类似于图中红色框的无镜像。这意味着旧图像不再被引用,然后它们变成悬空图像。如果使用-a参数,您还会发现另一种类型的无图像,其存储库和标记列都表示为无:

怎么清理docker资源的方法

这些图像称为中间图像(即其他图像所依赖的层)。

我们还可以在不同的子命令下执行修剪,以便删除某些资源:

Docker容器删除#删除所有处于退出状态的容器

Docker卷清理#删除未使用的数据卷

Docker图像修剪#删除悬挂或所有未使用的图像

让 docker 回到安装时的状态

这里的“安装状态”指的是资源占用情况,而不是docker的相关配置。这也是一个常见的用例。例如,作者需要在干净的docker环境中自动恢复生产环境(使用生产环境的备份数据),以便进行错误调查。让我们看看需要做什么。

回想一下我们前面介绍的Docker System Prune-all-force-volumns命令,如果系统中的所有容器在执行此命令之前都已经停止,那么此命令将删除所有资源!好了,现在让我们想办法停止系统中的所有容器。

码头集装箱停止命令可以

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

$dockercontainerls-a-q

怎么清理docker资源的方法

-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资源的方法

执行一次清理任务:

怎么清理docker资源的方法

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么清理docker资源的方法”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

腾讯云正在大促:点击 https://2bcd.com/go/tx/进入最新活动页】领取无门槛代金券,附云服务器价格表,2核2G4M轻量应用服务器99元1年,新老用户都可以买,可以享受1次续费99元一年、135元15个月、三年560元,MySQL云数据库59元1年起,2核2G3M配置82元1年,2核4G5M配置188元一年、3年900元,4核8G12M轻量服务器880元15个月,8核16G配置1890元15个月,更多16核32G28M带宽和云服务器CVM标准型S5、GPU服务器、CVM标准型SA2租用优惠价格如下,可以 点此进入最新活动页 查看当前最新的优惠券和活动信息。还可以领下10元无门槛代金券:点此直达 阿里云限量超级红包:点击领取】5亿上云补贴和2088元满减代金券,阿里云服务器租用费用最新价格表【点击了解】,最便宜轻量应用服务器2核2G3M带宽82元1年,ECS云服务器2核2G3M带宽99元一年,ECS u1实例2核4G5M带宽优惠价格199元一年,香港30M带宽轻量服务器24元1个月、288元一年,4核8G服务器706元一年,ECS云服务器4核16G10M带宽30元1个月、90元3个月,云服务器8核32G10M带宽109元1个月、327元3个月。阿里云产品最高降价55%,点击 https://2bcd.com/go/aliyun/ 进入最新活动页了解。 腾讯云续费贵,一次性买3年/5年,免得续费贵。3年轻量 2核2G 4M 560元;3年轻量 2核4G 5M 3年900元,活动入口:点击前往(下拉到“爆品专区”即可看到)。 老用户享新人优惠的方法:用Qq登录、1人可注册3个新账号/用家人朋友的身份注册新号(点击注册新账号)。
小咸鱼

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: