怎么快速清理Docker资源-创新互联

这篇文章将为大家详细讲解有关怎么快速清理Docker资源,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

10年积累的网站设计、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有卢龙免费网站建设让你可以放心的选择与我们合作。

  查看 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

怎么快速清理Docker资源

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

  $ docker system prune --all --force --volumns

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

怎么快速清理Docker资源

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

怎么快速清理Docker资源

  这些镜像被称为 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

怎么快速清理Docker资源

  -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 文件中就可以了!

怎么快速清理Docker资源

  执行一次清理任务:

怎么快速清理Docker资源

关于“怎么快速清理Docker资源”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

分享题目:怎么快速清理Docker资源-创新互联
网页路径:https://www.cdcxhl.com/article12/essdc.html

成都网站建设公司_创新互联,为您提供服务器托管自适应网站移动网站建设企业网站制作品牌网站设计微信小程序

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设