IDC

Docker 环境清理的常用方法

作者:admin 2021-04-16 我要评论

如果你使用 docker 进行大规模开发,但是没有清理策略,那么你的磁盘马上就会被填满,当你真的必须因为产品火爆而要立即交付一些东西时,你就无法交付。 当我们...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

如果你使用 docker 进行大规模开发,但是没有清理策略,那么你的磁盘马上就会被填满,当你真的必须因为产品火爆而要立即交付一些东西时,你就无法交付。

当我们在计算机中运行一个进程时,一旦这个进程完成,所有东西都会随之销毁。容器是我们现在很多人操作的基础设施。一切东西都运行在一个容器上,旨在每个容器有一个进程。当进程完成,容器就退出。但它不会自行清理。

Docker 积累的东西

你需要注意这些

  • 已经停止的容器
  • 磁盘卷
  • 镜像
  • 网络

如果有足够的空间,你可能不太关心磁盘空间,但是网络也很重要。默认地,Docker 使用 bridge 网络,它的极限是 31 个网络。当达到极限时,你会看到下面这条消息:

  1. could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network 

如果你是一个为每个项目创建一个网络的 docker-compose 重度用户,就会发生这种情况。你可以通过设置一个自定义--subnet子网来解决问题,例如:

  1. docker network create dada --subnet 192.167.11.0/24 

但无论如何,本文的重点是清理。

使用 docker 清理

清理已经停止的容器

  1. docker rm -v $(docker ps --all --quiet --filter 'status=exited') 

这会找到所有处于已退出(exited)状态的容器,一行一个地输出它们的 ID,以便我们可以将它提供给其它 shell 指令。

我们使用docker rm -v来删除任何匿名卷(没有显式名称的卷)。

清理磁盘卷

上面的命令应该删除与该容器关联的卷。如果你手动创建卷,并要删除任何未被使用的卷:

  1. docker volume rm $(docker volume ls --quiet --filter 'dangling=true') 

清理镜像

通常删除所有 Docker 镜像是安全的。我们可以在需要的时候按需获取。通常在一个镜像被清理后,构建时间会更长,因为 docker 守护进程需要花时间再次下载镜像

  1. docker rm --force $(docker images --quiet) 

这里,我们使用了--force来强制删除镜像,即使一个容器正在使用那个镜像。我们可以以后再获取这个镜像。

清理网络

这很简单。我们可以删除任何网络,它会在之后按需重建。

  1. docker network rm $(docker network ls --quiet) 

使用 docker-compose 清理

如果你使用 docker-compose 启动容器,我们有一种简单的方法来清理与特定 compose 文件关联的资源。

  1. docker-compose down --volumes --rmi all --remove-orphans 

不幸的是,这个命令不会删除匿名卷,因此你必须处理这些匿名卷。

一条命令解决所有问题

docker 是短暂的,我们总是可以重新获取镜像,为了开发重新创建我们的数据库,或者这只是一个持续集成系统,我们可以删除一切。

  1. docker system prune --all --force --volumes 

本文转载自网络,原文链接:https://mp.weixin.qq.com/s?__biz=MzA5NDg3MjAwMQ==&mid=2457112472&idx=1&sn=b803ee974d74c3c8d09026f237f717fa&chksm=87c82736b0bfae202faef66372e4ee00e37aaa0aad085faf3c95525fbfa0b3846df540ddb010&mpshare=1&

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • AWS集齐云存储服务“全家桶“,以全新

    AWS集齐云存储服务“全家桶“,以全新

  • 浏览器存储的不同类型 你知道几个?

    浏览器存储的不同类型 你知道几个?

  • 聊一聊吧鹅厂存储往事

    聊一聊吧鹅厂存储往事

  • 面试官:Redis 主从复制时网络开小差了

    面试官:Redis 主从复制时网络开小差了

腾讯云代理商
海外云服务器