前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >8个步骤彻底清理Docker镜像

8个步骤彻底清理Docker镜像

作者头像
希里安
发布2023-11-27 16:18:34
发布2023-11-27 16:18:34
13.2K00
代码可运行
举报
文章被收录于专栏:希里安希里安
运行总次数:0
代码可运行

近日见闻

  1. springboot3.2版本正式发布,更新从未停止,技术永无止境!
  2. OpenSSL 开发团队宣布,OpenSSL 3.2 系列的第一个版本 —— OpenSSL 3.2.0 正式 GA。
  3. 伊恩・希克森 (Ian Hickson) 是在谷歌工作了 18 年的老员工,他于 2005 年 10 月加入谷歌,18 年后递交了辞职信。上周是他在谷歌的最后一周。离职后,希克森在个人博客发表了一封措辞严厉的批评信,虽然标题为《回顾在 Google 的 18 年》,但内容主要是抨击谷歌 “腐化的文化”,并指责首席执行官桑达尔・皮查伊 (Sundar Pichai) “缺乏远见”。--oschina
  4. 埃隆・马斯克 (Elon Musk) 在社交平台发文宣布,已将特斯拉 (Tesla) 初代 Roadster 跑车的设计和工程细节 “完全开源”,并发布了所有人都可以访问的研发文件。这怎么说,真的牛!

docker镜像如此清理

在日常开发和维护工作中,Docker 镜像管理是一件既繁复又必要的工作。镜像积累如山,不仅占用宝贵的磁盘空间,还可能给我们的工作带来不便。今天,就让我带大家深入了解如何高效清理 Docker 镜像,保持我们的开发环境干净整洁。

1.查看镜像并评估

首先,我们需要知道自己的“战场”:

代码语言:javascript
代码运行次数:0
运行
复制
docker images -a

-a 参数会列出所有镜像,包括中间层镜像。检查一下这些镜像,评估哪些是必要的,哪些是可以删除的。

2.删除指定镜像

对于不再需要的镜像,我们可以使用它们的 ID、仓库名或标签来删除:

代码语言:javascript
代码运行次数:0
运行
复制
docker rmi [镜像ID或仓库名:标签]

3.批量删除无用镜像

清理所有悬挂(即无标签)镜像,这些通常是构建过程中留下的:

代码语言:javascript
代码运行次数:0
运行
复制
docker image prune

加上 -a 参数,可以删除所有未被容器引用的镜像:

代码语言:javascript
代码运行次数:0
运行
复制
docker image prune -a

4.清理特定时间前的镜像

当我们需要清理一定时间之前的镜像时,可以使用过滤器:

代码语言:javascript
代码运行次数:0
运行
复制
docker image prune -a --filter "until=168h"

上面的命令会删除所有创建时间超过168小时(7天)的镜像。

5.按照大小排序

有时候,我们想优先删除体积较大的镜像来快速释放空间:

代码语言:javascript
代码运行次数:0
运行
复制
docker images --format '{{.Size}}\t{{.Repository}}:{{.Tag}}' | sort -hr

这样我们可以直观地看到哪些镜像占用空间较大,然后手动删除。

6.使用脚本自动化

如果有一系列复杂的清理规则,我们可以编写一个简单的脚本来自动化这个过程。比如:

代码语言:javascript
代码运行次数:0
运行
复制
#!/bin/bash
# 清理所有未使用的镜像和容器
docker system prune -af
# 删除所有1.0版本开头的镜像
docker images | grep '1.0' | awk '{print $3}' | xargs docker rmi

7.定时自动清理

利用 cron 定时任务,可以设定周期性清理工作:

代码语言:javascript
代码运行次数:0
运行
复制
# 每天凌晨两点执行清理
0 2 * * * /path/to/your/script.sh

8.删除特定模式的镜像

对于复杂的模式匹配,我们可以使用更精细的 grep 命令:

代码语言:javascript
代码运行次数:0
运行
复制
docker images | grep '仓库名.*1.0' | awk '{print $3}' | xargs docker rmi

记得替换 '仓库名' 为你的实际仓库名。

注意事项

再次提醒,执行删除操作前,务必确认不会丢失重要数据。定期备份和清理是保持 Docker 环境健康的关键。同时,也要确保没有正在运行的服务会受到影响。

通过上面的分享,相信大家已经对如何清理 Docker 镜像有了更加全面和深入的认识。希望这些方法能帮到你,也欢迎在技术交流群分享你的经验或提出问题。

那么,今天的内容就到这里。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 希里安 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 近日见闻
  • docker镜像如此清理
    • 1.查看镜像并评估
    • 2.删除指定镜像
    • 3.批量删除无用镜像
    • 4.清理特定时间前的镜像
    • 5.按照大小排序
    • 6.使用脚本自动化
    • 7.定时自动清理
    • 8.删除特定模式的镜像
      • 注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档