当前位置: 首页 > article >正文

解决/var/lib/docker(默认的 Docker 数据目录)占用较大,并且所在磁盘空间不足

确认 Harbor 数据实际存储位置

Harbor 的数据通常存储在安装目录下,可以尝试以下方法确认实际存储路径。

检查 Harbor 配置文件

在 Harbor 安装目录中查找 harbor.yml 文件(通常在 /root/harbor/opt/harbor 下),查看 data_volume 配置项。

示例:

grep "data_volume" /path/to/harbor.yml

输出示例:

data_volume: /var/lib/harbor

这表示 Harbor 的数据存储在 /var/lib/harbor


解决办法

1. 清理无用的 Docker 数据

清理未使用的镜像、容器和卷
运行以下命令,清理未使用的 Docker 资源:

# 删除未被使用的镜像、容器、网络和卷
docker system prune -a --volumes
  • -a:删除所有未被容器使用的镜像。
  • --volumes:同时清理未使用的卷。
检查和清理特定无用资源

如果你不想完全删除未使用的资源,可以分别清理:

# 列出所有未被使用的镜像
docker images -f "dangling=true"

# 删除未被使用的镜像
docker rmi $(docker images -f "dangling=true" -q)

# 删除已停止的容器
docker rm $(docker ps -a -q)

# 删除未使用的卷
docker volume prune

2. 检查 Harbor 数据目录

Harbor 的数据默认存储在 /data 目录中,也可以从harbor.yml配置文件查看。如果你的 Harbor 数据占用较大,可以执行以下检查:

确认 Harbor 数据占用
du -sh /data
清理 Harbor 数据
  1. 登录到 Harbor Web 界面,清理无用镜像(删除未被标记的镜像)。
  2. 或者使用 Harbor 提供的清理工具:
# 停止 Harbor 服务
docker-compose down

# 执行 Harbor 数据清理
docker run -it --rm -v /data:/data goharbor/harbor-db:v2.8.0 ./harbor-db-cleaner

3. 将 Docker 数据目录迁移到更大的磁盘

如果清理无效或无法满足需求,可以将 /var/lib/docker 数据迁移到磁盘空间更大的地方(如 /home)。

步骤 1:停止 Docker 服务
systemctl stop docker
步骤 2:复制 /var/lib/docker 到新的目录

将 Docker 数据目录复制到 /home/docker(磁盘空间更大的地方):

cp -a /var/lib/docker /home/docker
步骤 3:修改 Docker 配置

编辑 Docker 配置文件 /etc/docker/daemon.json,指定新的数据根目录:

{
  "data-root": "/home/docker"
}

如果文件不存在,则需要创建。

步骤 4:重启 Docker 服务
systemctl start docker
步骤 5:验证迁移是否成功
docker info | grep "Docker Root Dir"

输出应显示新的 Docker 数据目录 /home/docker


4. 使用软链接切换 Docker 数据目录

如果你不想修改 Docker 配置文件,也可以通过创建软链接的方式将 /var/lib/docker 指向新的路径。

步骤 1:停止 Docker 服务
systemctl stop docker
步骤 2:移动 Docker 数据目录
mv /var/lib/docker /home/docker
步骤 3:创建软链接
ln -s /home/docker /var/lib/docker
步骤 4:启动 Docker 服务
systemctl start docker
步骤 5:验证

确保 Docker 服务正常运行,并检查新路径是否生效。


5. 检查其他占用磁盘的服务或日志

除了 Docker 数据外,还可以检查其他可能占用磁盘空间的服务或日志文件:

检查日志文件
du -sh /var/log/*

删除过大的日志文件(如 journal 或特定服务日志):

journalctl --vacuum-size=1G
rm -rf /var/log/<specific-log-file>

6.将 Harbor 数据迁移到更大的磁盘

如果确认了 Harbor 数据路径,可以将数据迁移到磁盘空间较大的目录(如 /home)。

迁移步骤
  1. 停止 Harbor 服务:

    docker-compose down
    
  2. 复制数据到新的目录:

    cp -a /var/lib/harbor /home/harbor-data
    
  3. 修改 Harbor 配置文件(如 harbor.yml):

    data_volume: /home/harbor-data
    
  4. 执行 install.sh 脚本
    运行以下命令重新生成 docker-compose.yml

./install.sh --with-notary --with-trivy --with-chartmuseum
--with-notary:启用 Notary 服务(可选)。
--with-trivy:启用 Trivy 扫描工具(可选)。
--with-chartmuseum:启用 Helm Chart 仓库服务(可选)。

如果你不需要这些组件,可以直接运行:

./install.sh

在这里插入图片描述

该脚本会根据 harbor.yml 的配置生成新的 docker-compose.yml
运行完成之后会自动启动Harbor
在这里插入图片描述
手动启动命令

 docker-compose up -d


http://www.kler.cn/a/442544.html

相关文章:

  • C 语言标准库函数——strtol函数
  • IOS工程师
  • 【深度学习实战】kaggle 自动驾驶的假场景分类
  • 下载文件,浏览器阻止不安全下载
  • 浅谈云计算02 | 云计算模式的演进
  • vue中的那些事(刷新+key+v-if,v-for)
  • 容器安全:风险与对策
  • MyBatis-Plus批量保存与多线程保存比较
  • Linux之条件变量,信号量,生产者消费者模型
  • 配置清晰,nignx http tcp 代理 已经websocket
  • 计算机网络——期末复习(1)背诵
  • AI芯片常见概念
  • MoonBit 核心编译器正式开源!
  • 2.16、添加响应式数据
  • php面对对象的基础知识
  • 车载通信架构 --- 一个以太网帧包含多个DoIP帧?
  • 手机银行模拟器,一款高仿真银行app的模拟器,可以修改姓名 卡号 余额 做转账记录 做流水
  • 鸿蒙操作系统(HarmonyOS)的应用开发入门
  • Trimble天宝三维激光扫描仪在建筑工程竣工测量中的应用【沪敖3D】
  • 125. 耍杂技的牛 acwing 贪心算法
  • Redis 中的渐进式扩容
  • Elasticsearch-DSL高级查询操作
  • NoSQL大数据存储技术测试(6)图数据库Neo4J
  • C++入门小馆:初识sort函数
  • spring学习(spring-bean实例化(实现FactoryBean规范)(延迟实例化bean))
  • java error(2)保存时间带时分秒,回显时分秒变成00:00:00