8个步骤彻底清理Docker镜像

 更新时间:2025年09月21日 09:45:26   作者:wx5bcd2f496a1cf  
本文主要介绍了8个步骤彻底清理Docker镜像,包括查看镜像、删除指定镜像、批量清理未使用镜像、按时间或大小过滤、脚本自动化及定时任务等,感兴趣的可以了解一下

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

1.查看镜像并评估

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

docker images -a

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

2.删除指定镜像

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

docker rmi [镜像ID或仓库名:标签]

3.批量删除无用镜像

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

docker image prune

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

docker image prune -a

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

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

docker image prune -a --filter "until=168h"

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

5.按照大小排序

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

docker images --format '{{.Size}}\t{{.Repository}}:{{.Tag}}' | sort -hr

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

6.使用脚本自动化

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

#!/bin/bash
# 清理所有未使用的镜像和容器
docker system prune -af
# 删除所有1.0版本开头的镜像
docker images | grep '1.0' | awk '{print $3}' | xargs docker rmi

7.定时自动清理

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

# 每天凌晨两点执行清理
0 2 * * * /path/to/your/script.sh

8.删除特定模式的镜像

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

docker images | grep '仓库名.*1.0' | awk '{print $3}' | xargs docker rmi

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

注意事项

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

通过上面的分享,相信大家已经对如何清理 Docker 镜像有了更加全面和深入的认识。希望这些方法能帮到你。

到此这篇关于8个步骤彻底清理Docker镜像的文章就介绍到这了,更多相关清理Docker镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • 加速拉取MySQL Docker镜像的两种方法

    加速拉取MySQL Docker镜像的两种方法

    在使用 Docker 部署 MySQL 时,许多开发者会遇到拉取镜像速度缓慢的问题,这主要是由于 Docker Hub 的服务器在国外,网络延迟较高,幸运的是,我们可以通过配置国内镜像加速器或使用国内镜像仓库的代理地址来解决这一问题,本文将详细介绍这两种方法,需要的朋友可以参考下
    2025-07-07
  • Docker如何自定义网络实现容器互通

    Docker如何自定义网络实现容器互通

    这篇文章主要为大家详细介绍了Docker如何通过自定义网络实现容器互通,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • 解决Jenkins集成docker插件问题的一些方法

    解决Jenkins集成docker插件问题的一些方法

    本文主要介绍了Jenkins集成docker插件问题的一些方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 如何解决报错unable to remove volume问题

    如何解决报错unable to remove volume问题

    这篇文章主要介绍了如何解决报错unable to remove volume问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 单机docker-compose部署minio过程

    单机docker-compose部署minio过程

    简述通过Docker-Compose在单机上挂载多硬盘实现MinIO多副本部署的方法,包括配置docker-compose.yaml和nginx.conf等关键步骤,适合服务器资源有限的场景
    2024-10-10
  • Mac上使用Docker如何快速启动MySQL测试

    Mac上使用Docker如何快速启动MySQL测试

    本文主要讨论如何使用Docker快速启动 MySQL 测试,包括Mac环境。非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • Docker 存储管理的几种方式

    Docker 存储管理的几种方式

    本文主要使用三种不同的方式将数据从Docker主机挂载到容器中,分别为卷(volumes),绑定挂载(bind mounts),临时文件系tmpfs,还介绍了数据卷容器、数据卷的备份与恢复,对Docker 存储管理相关知识感兴趣的朋友一起看看吧
    2022-07-07
  • Docke更新应用程序的过程详解

    Docke更新应用程序的过程详解

    这篇文章主要介绍了Docke更新应用程序,在本节中,您学习了如何更新和重建容器,以及如何停止和删除容器,需要的朋友可以参考下
    2023-11-11
  • 利用Docker搭建本地https环境的完整步骤

    利用Docker搭建本地https环境的完整步骤

    这篇文章主要给大家介绍了关于如何利用Docker搭建本地https环境的完整步骤,文中通过示例代码将实现的步骤介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2018-04-04
  • 如何在Docker容器中打印和配置环境变量

    如何在Docker容器中打印和配置环境变量

    环境变量是操作系统级别的配置,在系统启动时设置,可以被系统中的所有进程访问,这篇文章主要介绍了如何在Docker容器中打印和配置环境变量的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-07-07

最新评论