如何清理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容器存放目录磁盘空间满了的解决

    docker容器存放目录磁盘空间满了的解决

    这篇文章主要介绍了docker容器存放目录磁盘空间满了的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • docker desktop无法启动的一种解决方法(附完整步骤)

    docker desktop无法启动的一种解决方法(附完整步骤)

    这篇文章主要介绍了如何解决由于关闭虚拟化导致Docker Desktop无法启动的问题,通过重新启动虚拟化和WSL发行版解决了问题,并总结了其中的步骤和遇到的报错,需要的朋友可以参考下
    2025-03-03
  • Docker Stack部署Java Web项目的实现

    Docker Stack部署Java Web项目的实现

    本文主要介绍了Docker Stack部署Java Web项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 基于windows10安装docker及遇到的问题

    基于windows10安装docker及遇到的问题

    这篇文章主要介绍了基于windows10安装docker及遇到的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 解析Docker 下拉取oracle 11g镜像配置的问题

    解析Docker 下拉取oracle 11g镜像配置的问题

    这篇文章主要介绍了Docker 下拉取oracle 11g镜像配置的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • docker search mysql报错问题分析及解决

    docker search mysql报错问题分析及解决

    Docker是现在非常流行的一种容器化技术,能够方便开发者将应用程序打包进入容器,做到跨平台的部署,这篇文章主要介绍了docker search mysql报错问题分析及解决的相关资料,需要的朋友可以参考下
    2025-11-11
  • docker 搭建单机PostgreSQL操作详解

    docker 搭建单机PostgreSQL操作详解

    本文通过实际案例操作演示了如何基于Docker搭建pg的完整过程,并补充了pg数据库操作的常用命令和授权命令,感兴趣的朋友一起看看吧
    2025-04-04
  • 如何用docker部署kafka

    如何用docker部署kafka

    本文详细介绍了使用Docker快速搭建Kafka集群的步骤,包括选用wurstmeister/kafka镜像、配置文件修改、集群启动与管理,适合需要在Docker环境中部署Kafka的开发者参考
    2024-09-09
  • Docker中的容器网络和通信原理详解

    Docker中的容器网络和通信原理详解

    这篇文章主要介绍了Docker中的容器网络和通信原理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Docker环境下SpringBoot内存飙升与解决方案

    Docker环境下SpringBoot内存飙升与解决方案

    文章介绍了SpringBoot应用内存飙升的原因,以及默认的JVM内存配置策略,通过设置JVM内存参数,可以有效地优化内存使用,文章还提供了优化Dockerfile的建议,包括使用OpenJ9、GraalVM和Fabric8等方案
    2025-11-11

最新评论