10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

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

关注

评论

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

「架构实战营」模块一作业

between

架构实战营

区块链系统的层级架构如何及在供应链中的应用

CECBC

区块链

nsqlookupd:高性能消息中间件 NSQ 解析

华为云开发者联盟

集群 消息中间件 nsq nsqlookupd

架构实战营模块一作业

sandy

区块链BaaS平台的搭建,底层BaaS服务平台的开发

13828808769

行业资讯 产品资讯

Crash 游戏是公平的吗?

飞亚科技

牛比特小矿工系统开发|牛比特小矿工软件APP开发

系统开发

让云原生应用的交付变得更简单 | KubeVela v1.0 正式发布

郭旭东

Kubernetes 云原生 OAM KubeVela

面试笔记(二)线程池连环炮

U2647

Thread 4月日更

区块链商品溯源平台搭建及防伪溯源解决方案

13828808769

商品溯源

对于数据,科技小白提出了灵魂三问:从哪儿来?到哪儿去?能干什么?

华为云开发者联盟

人工智能 安全 数据 数据采集 网络人工智能

拍乐云 x 扬帆出海 x LiveCloud:音视频出海专家干货分享

拍乐云Pano

flutter ios android WebRTC RTC

猪肉价格跌至去年最低水平 区块链养猪成热点

CECBC

农业

模块一课后作业

王瑞强

架构实战营

BBK智能合约系统开发|BBK智能合约APP软件开发

系统开发

区块链让版权与创作如影随形 应用深度逐渐加强

CECBC

产权保护

openresty源码编译

上海派拉基础研发

nginx openresty

1小时800箱,动力机器人真·搬砖16小时不续航;苹果官宣 WWDC 全球开发者大会召开时间;基于图神经网络的分级相关性匹配

京东科技开发者

人工智能 AI 开发者

平面设计之PS(前序)

空城机

PhotoShop ps 4月日更

书单|互联网企业面试案头书之运营篇

博文视点Broadview

Rust从0到1-结构体-定义和实例化

rust struct 结构体

白金熊项目奖金制度玩法介绍

飞亚科技

MUSO挖矿系统开发

飞亚科技

有了这个框架,平台开发谁还手敲代码?

华为云开发者联盟

华为云 智慧园区 MainPortal 统一门户 HDC2021

【LeetCode】搜索旋转排序数组 IIJava题解

Albert

算法 LeetCode 4月日更

小白都能学会的Java注解与反射机制

陈皮的JavaLib

Java 注解 java反射

情指勤一体化指挥调度平台建设,重点人员管理平台

Nginx 除了负载均衡,还能干点啥

Java小咖秀

nginx 负载均衡

这6个浏览器插件,让你的浏览器大为不同。

彭宏豪95

chrome 浏览器 插件 chrome扩展 4月日更

人生苦短,我用Python之小游戏

Bob

开发者 Python 游戏编程 4月日更 -python

7 个非常实用的 Shell 拿来就用脚本实例!

JackTian

Linux 编程 Shell 脚本语言 运维工程师

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