如何清理docker的overlay2 目录

 更新时间:2025年03月20日 10:46:14   作者:云上艺旅  
本文介绍了如何清理Docker的overlay2目录,包括确认overlay2目录的位置、清理未使用的容器和镜像、手动清理overlay2目录、清理日志文件、限制日志大小以及检查磁盘空间,感兴趣的朋友一起看看吧

overlay2 是 Docker 默认使用的存储驱动,用于管理容器和镜像的存储。随着容器和镜像的增多,overlay2 目录可能会占用大量磁盘空间。清理 overlay2 目录需要谨慎操作,以避免误删正在使用的容器或镜像。

以下是清理 overlay2 目录的步骤和方法:

1. 确认 overlay2 目录的位置

overlay2 目录通常位于 Docker 的数据根目录下,默认路径为 /var/lib/docker/overlay2

sudo du -sh /var/lib/docker/overlay2

该命令会显示 overlay2 目录的磁盘使用情况。

2. 清理未使用的容器和镜像

Docker 提供了命令来清理未使用的资源,包括停止的容器、未使用的镜像、悬空的卷和网络。

清理未使用的容器、镜像、卷和网络:

sudo docker system prune -a
  • -a:删除所有未使用的镜像(不仅仅是悬空镜像)。
  • 该命令会提示确认,输入 y 继续。 仅清理悬空镜像:
sudo docker image prune

仅清理停止的容器:

sudo docker container prune

仅清理未使用的卷:

sudo docker volume prune

仅清理未使用的网络:

sudo docker network prune

3. 手动清理 overlay2 目录

如果 docker system prune 无法完全释放空间,可以手动清理 overlay2 目录。但需要确保清理的文件没有被正在运行的容器或镜像使用。

步骤:

停止 Docker 服务:

sudo systemctl stop docker

删除 overlay2 目录中的未使用文件:

进入 overlay2 目录:

cd /var/lib/docker/overlay2

查找并删除未使用的目录:

sudo find . -type d -empty -delete

启动 Docker 服务:

sudo systemctl start docker

4. 清理日志文件

Docker 的日志文件也可能占用大量磁盘空间。可以清理日志文件以释放空间。

清理容器日志:

查看容器日志大小:

sudo du -sh /var/lib/docker/containers/*/*-json.log

清理日志文件:

清理单个容器的日志:

sudo truncate -s 0 /var/lib/docker/containers/<container_id>/<container_id>-json.log

清理所有容器的日志:

sudo truncate -s 0 /var/lib/docker/containers/*/*-json.log

5. 限制日志大小

为了避免日志文件占用过多空间,可以在启动容器时限制日志大小。

示例:

sudo docker run -d --log-opt max-size=10m --log-opt max-file=3 <image_name>
  • max-size=10m:每个日志文件最大为 10MB。
  • max-file=3:最多保留 3 个日志文件。

6. 检查磁盘空间

清理完成后,检查磁盘空间是否释放:

df -h

注意事项:

  • 谨慎操作:手动删除 overlay2 目录中的文件可能会导致数据丢失或容器无法启动。
  • 备份数据:在清理之前,建议备份重要数据。
  • 避免直接删除:不要直接删除整个 overlay2 目录,否则会导致 Docker 无法正常工作。

到此这篇关于如何清理docker的overlay2 目录的文章就介绍到这了,更多相关docker overlay2 目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Docker Compose搭建 Confluence的教程

    使用Docker Compose搭建 Confluence的教程

    本文将介绍如何使用 Docker Compose 快速搭建 Confluence 、以及如何和 Traefik 一同使用,如果你看过之前的内容,跟随本文应该能在十分钟内解决战斗,感兴趣的朋友快来看看吧
    2021-06-06
  • 在Docker中开发Java 8 Spring Boot应用程序的方法

    在Docker中开发Java 8 Spring Boot应用程序的方法

    在本文中,我将向您展示如何使用Java 8开发和运行简单的Spring Web应用程序,而无需在本地计算机上安装Java 8。感兴趣的朋友跟随小编一起看看吧
    2019-10-10
  • docker-compose启动mongo容器的使用

    docker-compose启动mongo容器的使用

    这篇文章主要介绍了docker-compose启动mongo容器的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • docker安装nacos的详细教程

    docker安装nacos的详细教程

    这篇文章主要介绍了docker安装nacos,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • Docker绑定固定IP/跨主机容器互访操作

    Docker绑定固定IP/跨主机容器互访操作

    这篇文章主要介绍了Docker绑定固定IP/跨主机容器互访操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 常用的8个应用和中间件的Docker运行示例详解

    常用的8个应用和中间件的Docker运行示例详解

    Portainer是一个轻量级的管理 UI ,可让你轻松管理不同的 Docker 环境(Docker 主机或 Swarm 群集),这篇文章主要介绍了常用的8个应用和中间件的Docker运行示例,需要的朋友可以参考下
    2024-03-03
  • Docker搭建私有GitLab服务的方法

    Docker搭建私有GitLab服务的方法

    本文主要介绍了Docker搭建私有GitLab服务的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 解决Docker pull拉取镜像报错“Error response from daemon:Get“https://registry-1.docker.io/v2”问题

    解决Docker pull拉取镜像报错“Error response from 

    解决Docker镜像拉取问题的步骤包括:检查报错信息,修改daemon.json添加网易镜像加速,重启Docker服务,排查DNS解析及host配置,最后重新拉取镜像,总结为个人经验分享,供参考学习
    2025-08-08
  • Docker启动参数超详细讲解

    Docker启动参数超详细讲解

    在启动Docker容器时,我们可以通过添加参数来修改容器的配置,这样可以灵活地适应不同的场景和需求,这篇文章主要给大家介绍了关于Docker启动参数的相关资料,需要的朋友可以参考下
    2024-01-01
  • Kubernetes(k8s)基础介绍

    Kubernetes(k8s)基础介绍

    今天小编就为大家分享一篇关于Kubernetes(k8s)基础介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10

最新评论