写点什么

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:313557
用户头像

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

关注

评论

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

如何利用科学的预算管理为企业释放更多价值

智达方通

数字化转型 全面预算管理 财务管理 财务规划

Kyutai 推出 Moshi 语音模型微调工具包;语音智能体平台 Vapi 2.0 上线,已提供 4400 万通电话服务丨日报

声网

NineData云原生智能数据管理平台新功能发布|2025年3月版

NineData

TiDB 观测性解读(一)丨索引观测:快速识别无用索引与低效索引

TiDB 社区干货传送门

Rust 如何轻松实现 RTMP 流媒体推送?深入解析直播推流场景与解决方案

Yeauty

rust ffmpeg Video RTMP media

LLM 不断提升智能下限,MCP 不断提升创意上限

阿里巴巴云原生

阿里云 微服务 云原生 LLM

Techub 财报解读:Circle 冲刺 IPO,但收入增长难掩利润困局

TechubNews

CAD裁剪块方法

极客天地

高可靠架构+智能运维,华为云会议“始终在线”!

平平无奇爱好科技

AI 浪潮下企业身份管理:特点凸显,安全挑战升级

TechLead Studio

AI 企业身份安全

Python + 腾讯云,多页PDF发票识别一键搞定!

程序员晚枫

开源

掌握 JSON 到表格转换:全面指南

数据追梦人

AI框架不牢,模型地动山摇

脑极体

AI

南京大学与阿里云联合启动人工智能人才培养合作计划,已将通义灵码引入软件学院课程体系

阿里巴巴云原生

阿里云 云原生 通义灵码

人工智能+牙科:临床应用中的几个问题

算AI

人工智能 算法 医疗AI 视觉模型

《Operating System Concepts》阅读笔记:p552-p579

codists

操作系统

AI框架不牢,模型地动山摇

白洞计划

AI

Apipost vs Apifox:高效API协作的差异化功能解析

数据追梦人

南京大学与阿里云联合启动人工智能人才培养合作计划,已将通义灵码引入软件学院课程体系

阿里云云效

阿里云 云原生 通义灵码

卫浴“家电化”:一场科技驱动洗牌赛拉开序幕

Alter

TiDB 可观测性解读(二)丨算子执行信息性能诊断案例分享

TiDB 社区干货传送门

百度开放3000+实习机会,AI相关岗位占比87%

科技大数据

阿里云可观测 2025 年 3 月产品动态

阿里巴巴云原生

阿里云 云原生 可观测

Centos系统云主机中nvme盘不可用解决方法

天翼云开发者社区

云主机

TiDB × AI :DeepSeek 时代你需要什么样的数据基座

TiDB 社区干货传送门

数据库选型指南:TiDB 与 MySQL 全方位对比清单新鲜出炉!

TiDB 社区干货传送门

GraalVM 24 正式发布阿里巴巴贡献重要特性 —— 支持 Java Agent 插桩

阿里巴巴云原生

阿里云 云原生

【超详细】Mac读取移动硬盘速度很慢的原因及解决方法

阿拉灯神丁

文件存储 磁盘管理 Mac软件 苹果电脑 Tuxera NTFS2024

开源项目:一行代码,批量 PDF 转 Word 轻松搞定!

程序员晚枫

PDF word 自动化办公

东京 Voice AI Agent 工作坊!1 小时让你的 AI 能听能说

声网

智能体爆发元年,谁在“无人区”绘制地形图?

脑极体

AI

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