本文主要介绍如何清理码头工人资源,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章,收获多多。让桂哥网络带你去了解一下。
如果你经常使用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资源的方法”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!