写点什么

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

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

关注

评论

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

Web3.0区块链技术全流程方案:DApp项目开发、推广以及运营

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

PTS 3.0:开启智能化的压测瓶颈分析

阿里巴巴云原生

阿里云 云原生 压测

EMQX Enterprise 5.5 发布:新增 Elasticsearch 数据集成

EMQ映云科技

mqtt mqtt broker

蒋安祥:巴拿马奖项评选指南与规程赢得企业界广泛认可

极客天地

探秘闲鱼商品详情关键词搜索电商API接口,让你轻松找到心仪的宝贝!

联讯数据

SNZ资本的首席信息官Gavin确认出席Hack .Summit() 2024香港开发者大会!

TechubNews

舞台LED显示屏与传统LED显示屏的区别

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏 舞台表演

陆海×微帧,在海洋卫星传输环境下的极限视频压缩

微帧Visionular

视频编码 视频压缩

SD-WAN助力企业数据传输安全

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

商品评价聚合:利用API从多个来源获取数据的详细指南

Noah

追踪Jira中项目成本与工时,更符合国人使用习惯——TimeWise工时管理

龙智—DevSecOps解决方案

DevOps DevSecOps Atlassian

前端:Vue2.0和Vue3.0的一些入门对比

秃头小帅oi

前端 低代码 js Vue 3 vue2

作为程序员,沟通能力是否重要?

小齐写代码

云桌面哪家好用?

青椒云云电脑

云桌面 云桌面厂家 云桌面解决方案

SD-WAN网络搭建技术:企业降本增效的首选

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

SD-WAN对金融行业的重要性

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

KaiwuDB 拿下 “物联之星” 双项殊荣

KaiwuDB

数据库 物联网

云桌面跟远程桌面有什么区别?

青椒云云电脑

云桌面 云桌面方案 云桌面系统

教你如何用Keepalived和HAproxy配置高可用 Kubernetes 集群

华为云开发者联盟

开发 华为云 华为云开发者联盟

云桌面系统厂家-青椒云

青椒云云电脑

云桌面 云桌面厂家 云桌面方案 云桌面系统

Supermicro 通过新基础设施解决方案,加速 5G 和电信云工作负载性能

财见

破防了,谁懂啊家人们:记一次mysql问题排查

阿里技术

MySQL 索引 问题排查 表结构

超越传统:人工智能赋能的自动化测试新前景

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

测试

开班在即 | 测试开发名企定向培养训练营,手把手带你提升核心竞争力!

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

测试

亚马逊云科技为派拓网络打造数字安全平台产品组合

财见

聊聊Java 类属性与类方法的应用

伤感汤姆布利柏

Java 前端

聚道云助力时尚巨头打通数据孤岛,实现全渠道管理升级!

聚道云软件连接器

案例分享

火山引擎弹性容器实例:从节点中心转型 Serverless 化架构的利器

极客天地

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