写点什么

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

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

关注

评论

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

“代码跑着跑着,就变快了?”——揭秘Java性能幕后引擎:即时编译器

poemyang

编译原理 Java虚拟机 即时编译器 JIT编译器 #java

星云低代码:低代码不再是平台,而是“中间件”

星云低代码中间件

低代码 开发工具 企业管理系统 Vue 3 #java

如何选择合适的LED显示屏像素间距?

Dylan

LED LED display LED显示屏 LED屏幕

华为开发者空间使用CodeArts IDE调用API实现电商平台问答助手

华为云开发者联盟

AI+ 华为云CodeArts Qwen1.5 华为开发者空间

Conc,一个神奇的Go语言并发利器!

左诗右码

播放器音频后处理实践(一)

百度Geek说

Altair HyperWorks仿真案例:通过设计优化最大化发挥增材制造的潜力

智造软件

仿真 Hypermesh hyperworks

苹果电脑怎么在虚拟机里安装office办公软件?Mac怎么运行Windows版的office365?

凡凡不烦

Office Parallels Desktop下载 虚拟机软件 Mac效率办公软件 如何在Mac运行win

基于开发者空间编写ODBC应用程序操作OpenGauss数据库

华为云开发者联盟

GaussDB(for openGauss) ODBC C++ API 接口 华为开发者空间

闭源精密战与开源敏捷性:能源管理系统的双线引领

开源能源管理系统

开源 能源管理系统

KWDB 一库多用:当多模遇上分布式

KaiwuDB

零代码生成 3D 游戏:基于 Amazon Q Developer CLI 和 Three.js 的实践

亚马逊云科技 (Amazon Web Services)

基于多代理协作的智能电子取证解决方案

qife122

人工智能 多代理系统

鹏峰能源创始人姚小峰出席2025太阳岛企业家年会

科技热闻

三级等保测评流程优化实践

等保测评

哈尔滨二级等保设备选型指南

等保测评

2025年最佳加密软件精选

qife122

数据保护 加密技术

大数据-60 Kafka 消息消费与心跳机制详解:原理、流程及参数调优

武子康

Java 大数据 kafka 分布式

本地IntelliJ IDEA连接开发者空间-云开发环境,进行小游戏开发

华为云开发者联盟

云主机 IntelliJ IDEA 华为开发者空间

三级等保在哈尔滨智慧城市建设中的战略价值

等保测评

工厂工地如何利用MyEMS实现安全绿色生成,助力企业节能减排,降本增效

开源能源管理系统

开源 能源管理系统

TRAE cue 体验提升之 Latency 篇

北京中暄互动广告传媒有限公司

区块链Web3项目开发的进度管理

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

小白也可以只用 2 轮 prompt 生成你的“哈利波特测试器”

北京中暄互动广告传媒有限公司

如何实现专业技术教学与思政教育的有机融合|北京理工大学医工交叉教学实践分享(4)

ModelWhale

AI教育 医工融合 北京理工大学

MyEMS开源能源管理系统实际案例分析

开源能源管理系统

开源 开源能源管理系统 MyEMS

大模型训练故障恢复效率提升方案

qife122

机器学习 容错机制

CST怎样安装补丁?CST Studio Suite 2022 SP2补丁包

思茂信息

电磁仿真 CST软件 CST Studio Suite

私有化即时通讯有什么优势,推荐BeeWorks聊天工具

BeeWorks

即时通讯 IM 私有化部署

BeeWorks私有化即时通讯,局域网办公安全可控

BeeWorks

即时通讯 IM 私有化部署

IDE 革命:超越自动完成

俞凡

人工智能

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