写点什么

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

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

关注

评论

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

C语言编程语法—文件读写

芯动大师

C语言 二进制 6 月 优质更文活动

软件测试/测试开发丨学习笔记之Mark标记测试用例

测试人

程序员 软件测试 自动化测试 测试开发 测试用例

推动开源与商业共生共赢 | 2023开放原子全球开源峰会开源商业化创新发展分论坛即将启幕

开放原子开源基金会

开源 开源商业化 开放原子全球开源峰会 开放原子

华为云发布面向消费终端的企业云原生白皮书,开辟移动时代的云原生路径

脑极体

云原生

奇点云举办“数据进化论”数智科技大会,发布数据云七大场景

奇点云

业务场景 奇点云 数智科技大会

自动驾驶≠速度与激情

白洞计划

自动驾驶

2023-06-06:给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。 对位于 (row, col) 的每个结点而言, 其左右子结点分别位于 (row + 1, col -

福大大架构师每日一题

golang rust 福大大

【Netty】「NIO」(一)认识 ByteBuffer

sidiot

后端 Netty java‘ 6 月 优质更文活动

自动驾驶≠速度与激情

脑极体

自动驾驶

Docker里的基础术语

穿过生命散发芬芳

Docker 6 月 优质更文活动

Web智慧化工三维可视化管理系统

2D3D前端可视化开发

三维可视化 工业组态 物联网系统 数字孪生技术 智慧化工

以AI为灯,照亮医疗放射防护监管盲区

飞桨PaddlePaddle

人工智能 深度学习 百度飞桨

AWS CodeWhisperer 上手初体验安装与使用

宇宙之一粟

Python 代码编辑工具 CodeWhisperer 6 月 优质更文活动

地图实火!断货加印,限时折扣抢购通道开启

融云 RongCloud

社交 融云 泛娱乐 出海 wicc

整合开源治理经验,共谋开源社区发展|2023开放原子全球开源峰会开源社区治理与运营分论坛即将启幕

开放原子开源基金会

开源 开放原子全球开源峰会 开源社区治理与运营

Vue-事件基本使用

不觉心动

6 月 优质更文活动

最近几年,国内好多家实体企业都开始用上低代码了,它有什么好?

优秀

低代码 数字化

java多线程总结

Studying_swz

6 月 优质更文活动

推动体系建设 助推融合发展|2023开放原子全球开源峰会软件物料清单(SBOM)分论坛即将启幕

开放原子开源基金会

开源 开放原子全球开源峰会 软件物料清单(SBOM)

如何用Smartproxy住宅代理IP抢购潮牌鞋子?住宅代理抢购限量款式

摘星星的猫

OpenYurt 即将亮相 EdgeX+OpenVINO 开发者生态大会

阿里巴巴云原生

阿里云 开源 云原生

系统稳定性与高可用保障

得物技术

架构 高可用 稳定性

从 PMO 的视角,看如何从 0 到 1 搭建研发效能体系?

思码逸研发效能

研发效能

以安全为底线 共迎机遇和挑战|2023开放原子全球开源峰会可信基础设施技术分论坛即将启幕

开放原子开源基金会

开源 开放原子全球开源峰会 可信基础设施技术

设计模式总结(二):结构型模式

Studying_swz

6 月 优质更文活动

动态修改coreThread线程池拓展

FunTester

初步了解RNN, Seq2Seq, Attention注意力机制

Studying_swz

6 月 优质更文活动

2个原因解答:为什么网络安全缺口大,招聘却很少?

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

轻量级分布式日志追踪-Tlog快速入门

javalover123

分布式 日志 Skywalking spring-boot Tlog

几分钟上线一个应用,这个神器我爱了!

引迈信息

低代码 JNPF 办公神器

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