写点什么

Docker 清理的常用方法

  • 2021-03-16
  • 本文字数:1073 字

    阅读完需:约 4 分钟

Docker清理的常用方法

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


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

Docker 积累的东西

你需要注意这些


  • 已经停止的容器

  • 磁盘卷

  • 镜像

  • 网络


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


could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network
复制代码


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


docker network create dada --subnet 192.167.11.0/24
复制代码


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

使用 docker 清理

清理已经停止的容器

docker rm -v $(docker ps --all --quiet --filter 'status=exited')
复制代码


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


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

清理磁盘卷

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


docker volume rm $(docker volume ls --quiet --filter 'dangling=true')
复制代码

清理镜像

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


docker rm --force $(docker images --quiet)
复制代码


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

清理网络

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


docker network rm $(docker network ls --quiet)
复制代码

使用 docker-compose 清理

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


docker-compose down --volumes --rmi all --remove-orphans
复制代码


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

一条命令解决所有问题

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


docker system prune --all --force --volumes
复制代码


原文链接:


https://hanami.run/blog/posts/cleanup-docker/

2021-03-16 14:313785
用户头像

发布了 165 篇内容, 共 84.9 次阅读, 收获喜欢 343 次。

关注

评论

发布
暂无评论
发现更多内容

新一代多模态合规分析平台,炼就服务洞察火眼金睛

中关村科金

人工智能 多模态 大模型 客户洞察

详解Python 中可视化数据分析工作流程

华为云开发者联盟

Python 数据可视化 华为云 华为云开发者联盟 企业号2024年5月PK榜

算法人生(14):从“探索平衡策略”看“生活工作的平衡之道”

糖小妹来了

人工智能 平衡 强化学习 探索平衡策略

算法人生(15):从“智能任务调度算法”到“15-45-90时间管理法”

糖小妹来了

人工智能 算法 时间管理 智能调度

实“智”名归!天翼云论文被国际顶会IEEE CVPR收录!

天翼云开发者社区

人工智能 云计算

解构复合人工智能系统(Compound AI Systems):关键术语、理论、思路、实践经验

Baihai IDP

程序员 AI LLM 白海科技 企业号 5 月 PK 榜

这款工具让开发变得没门槛了

是但求其发

容器 云原生 K8s 多集群管理 云端开发 生成式AI

【京东云新品发布月刊】2024年4月产品动态

京东科技开发者

TiDB 学习/认证的哪些事儿

TiDB 社区干货传送门

学习&认证&课程

算法人生(13):从“Scrum”看“PDCA时间管理法”

糖小妹来了

Scrum 敏捷 时间管理 PDCA 敏捷项目管理

天翼云助农上演“科技大片”,绘就数字春耕新图景!

天翼云开发者社区

云计算 云电脑

7个维度告诉你,产品经理是如何取舍“需求”的?

糖小妹来了

需求管理 需求 需求迭代

利用LangChain构建的智能数据库操作系统

霍格沃兹测试开发学社

算法人生(10): 从“惰性求解”看“积极拖延”如何提高效率

糖小妹来了

算法 拖延 惰性求解 算法思路

基于LangChain实现数据库操作的智能体

测试人

软件测试

基于LangChain实现数据库操作的智能体

测吧(北京)科技有限公司

测试

算法人生(11):从“梯度提升树(GBDT)”看“2/8时间管理法”

糖小妹来了

机器学习 算法 时间管理 梯度提升树 GBDT

算法人生(12):从“优先级队列算法”到“”六点优先工作法”

糖小妹来了

人工智能 算法 优先队列算法 六点优先工作法 工作方法

以数字守护汉字!天翼云TeleDB数据库获GB 18030最高级别认证!

天翼云开发者社区

数据库 云计算

谈谈天翼云对等连接

天翼云开发者社区

云计算 天翼云

浅谈云主机在VPC中进行迁移的使用场景和操作方法

天翼云开发者社区

云计算 云主机

pandabuy VS wegobuy 淘宝代购集运系统类似软件哪家公司开发的?

tbapi

淘宝代购系统 淘宝代购集运系统 Pandabuy wegobuy

微信小程序直接生成鸿蒙App的路径

Onegun

鸿蒙 鸿蒙开发

Docker清理的常用方法_服务革新_Hanami_InfoQ精选文章