K8S学习之前站五:清理docker的overlay2 目录

devtools/2025/3/19 12:30:55/

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 目录。但需要确保清理的文件没有被正在运行的容器或镜像使用。

步骤:
  1. 停止 Docker 服务:

    sudo systemctl stop docker
    
  2. 删除 overlay2 目录中的未使用文件:

    • 进入 overlay2 目录:

      cd /var/lib/docker/overlay2
      
    • 查找并删除未使用的目录:

      sudo find . -type d -empty -delete
      
  3. 启动 Docker 服务:

    sudo systemctl start docker
    

4. 清理日志文件

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

清理容器日志:
  1. 查看容器日志大小:

    sudo du -sh /var/lib/docker/containers/*/*-json.log
    
  2. 清理日志文件:

    • 清理单个容器的日志:

      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 无法正常工作。

http://www.ppmy.cn/devtools/168336.html

相关文章

pytorch小记(十四):pytorch中 nn.Embedding 详解

pytorch小记&#xff08;十四&#xff09;&#xff1a;pytorch中 nn.Embedding 详解 PyTorch 中的 nn.Embedding 详解1. 什么是 nn.Embedding&#xff1f;2. nn.Embedding 的基本使用示例 1&#xff1a;基础用法示例 2&#xff1a;处理批次输入 3. nn.Embedding 与 nn.Linear 的…

4.从GitHub拉取远程分支到本地

要从GitHub拉取远程分支到本地&#xff0c;可以按以下步骤操作&#xff1a; 1. 方法一&#xff1a;直接拉取并切换到分支 适用场景 远程分支已存在&#xff08;例如 feature/new-ui&#xff09;&#xff0c;需拉取到本地并自动跟踪。 拉取所有远程分支信息&#xff08;确保本…

AI+遥感:农作物病虫害实时预警新突破!

引言&#xff1a;一场静悄悄的田间革命 在河南省周口市的麦田里&#xff0c;一架搭载多光谱相机的无人机正在低空盘旋。远在2000公里外的北京国家农业大数据中心&#xff0c;AI系统突然发出警报&#xff1a;北纬33.76、东经114.63区域出现条锈病早期感染迹象&#xff0c;感染面…

【Redis】Redis的数据删除(过期)策略,数据淘汰策略。

如果问到&#xff1a;假如Redis的key过期之后&#xff0c;会立即删除吗&#xff1f; 其实就是想问数据删除(过期)策略。 如果面试官问到&#xff1a;如果缓存过多&#xff0c;内存是有限的&#xff0c;内存被占满了怎么办&#xff1f; 其实就是问&#xff1a;数据的淘汰策略。…

中电金信25/3/18面前笔试(需求分析岗+数据开发岗)

部分相同题目在第二次数据开发岗中不做解析&#xff0c;本次解析来源于豆包AI&#xff0c;正确与否有待商榷&#xff0c;本文只提供一个速查与知识点的补充。 一、需求分析 第1题&#xff0c;单选题,Hadoop的核心组件包括HDFS和以下哪个&#xff1f; MapReduce Spark Storm…

android开发:组件事件汇总

在 Android 开发中&#xff0c;Java 文件中有许多组件事件可以处理用户交互。以下是一些常见的组件事件及其用途和示例&#xff1a; 1. 点击事件 (Click) 用于处理用户点击控件的操作。 示例代码&#xff1a; Button button findViewById(R.id.button); button.setOnClickL…

【GNN】GAT

消息传递 层数越多&#xff0c;聚合更多的消息

Mysql表的简单操作

&#x1f3dd;️专栏&#xff1a;Mysql_猫咪-9527的博客-CSDN博客 &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 3.1 创建表 3.2 查看表结构 3.3 修改表 1. 添加字段 2. 修改字段 3…