news 2026/5/16 0:24:52

别再乱删文件了!Harbor 2.3.3 保姆级卸载重装指南(附Docker清理命令)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别再乱删文件了!Harbor 2.3.3 保姆级卸载重装指南(附Docker清理命令)

Harbor 2.3.3 彻底卸载与洁净重装全流程指南

当你面对一个反复报错的Harbor环境,或是准备升级到新版本时,"直接删除文件"可能是最诱人却也最危险的选择。我曾亲眼见过一位同事执行rm -rf命令后,不仅Harbor无法重装,连带Docker服务也陷入瘫痪——这正是典型的不彻底卸载引发的连锁反应。本文将带你用系统化的方式,从零开始构建一套安全的Harbor卸载重装流程。

1. 为什么常规删除会留下隐患

Harbor作为企业级镜像仓库,其组件间存在复杂的依赖关系。简单删除安装目录仅移除了表面文件,而以下隐藏问题往往被忽略:

  • 残留的Docker资源:Harbor核心服务(Core、Portal、Jobservice等)都以容器形式运行,直接删除安装目录会导致这些容器变成"孤儿进程"
  • 数据库持久化数据:PostgreSQL或Redis中的数据文件默认存储在/data目录,这些正是重装后配置冲突的主要来源
  • 证书与密钥遗留:TLS证书、私钥等敏感文件若未清理,新安装时可能因权限问题导致服务启动失败

提示:执行任何删除操作前,建议先用docker ps -a | grep harbor查看运行中的容器状态

2. 卸载前的准备工作

2.1 环境状态检查

首先通过以下命令确认当前Harbor的运行状态:

# 检查Harbor相关容器 docker-compose -f /path/to/harbor/docker-compose.yml ps # 查看挂载卷信息 docker volume ls | grep harbor

记录输出中显示的STATUSVOLUME NAME,这将决定后续清理策略。

2.2 关键数据备份

即使要卸载,这些数据也建议保留:

  1. 配置文件harbor.yml中的自定义参数(特别是external_database配置)
  2. 镜像存储/data/registry目录下的所有镜像层文件
  3. 扫描报告/data/trivy-adapter中的安全扫描结果

使用以下命令打包关键数据:

tar -czvf harbor_backup_$(date +%Y%m%d).tar.gz \ /path/to/harbor/harbor.yml \ /data/registry \ /data/trivy-adapter

3. 分步骤彻底卸载Harbor

3.1 停止并移除容器服务

进入Harbor安装目录执行标准停止命令:

cd /path/to/harbor docker-compose down -v

这里的-v参数会同时删除docker-compose中定义的匿名卷,但不会删除命名卷。

3.2 清理Docker残留资源

手动清理可能遗漏的资源:

# 删除所有Harbor相关容器 docker ps -aq --filter "name=harbor" | xargs docker rm -f # 删除所有Harbor相关镜像 docker images -aq --filter "reference=*harbor*" | xargs docker rmi -f # 清理网络 docker network ls -q --filter "name=harbor" | xargs docker network rm

3.3 删除持久化数据

根据安装时的配置,需要清理以下目录:

目录路径内容类型是否必须删除
/data数据库、Redis、镜像存储重装必删
/var/log/harbor日志文件可选
/etc/harbor配置文件建议删除

使用find命令定位所有相关文件:

sudo find / -name "*harbor*" -exec ls -ld {} \;

确认无误后执行删除:

sudo rm -rf /data /etc/harbor /var/log/harbor

4. Docker系统级清理(可选)

当需要完全重置Docker环境时,可执行以下深度清理:

# 停止所有容器 docker stop $(docker ps -aq) # 删除所有容器、镜像、卷 docker system prune -a --volumes # 清理残留iptables规则 sudo iptables -F sudo iptables -t nat -F

警告:此操作会清除Docker中所有非运行中的资源,请确保已备份必要数据

5. 洁净重装最佳实践

5.1 新版Harbor安装准备

下载离线安装包并校验完整性:

wget https://github.com/goharbor/harbor/releases/download/v2.3.3/harbor-offline-installer-v2.3.3.tgz sha256sum harbor-offline-installer-v2.3.3.tgz

解压后修改配置文件关键参数:

# harbor.yml 示例片段 hostname: registry.yourdomain.com data_volume: /new/data/path # 避免使用旧路径 database: password: new_strong_password # 必须修改默认密码

5.2 安装后健康检查

完成./install.sh后,验证服务状态:

# 检查容器状态 docker-compose ps # 测试API响应 curl -k https://localhost/api/v2.0/health

常见问题处理:

  • 端口冲突:检查netstat -tulnp | grep 80确认无其他服务占用
  • 证书错误:确保证书路径权限为chmod 600 /etc/harbor/ssl/*
  • 数据库连接失败:检查PostgreSQL日志docker logs harbor-db

6. 高级维护技巧

6.1 使用外部数据库

harbor.yml中配置外部PostgreSQL可避免数据丢失:

external_database: harbor: host: postgresql-server port: 5432 db_name: harbor username: harbor password: yourpassword

6.2 自动化清理策略

/etc/cron.daily/创建定时任务脚本:

#!/bin/bash # 清理30天前的镜像标签 docker exec -it harbor-registry registry garbage-collect \ /etc/registry/config.yml --delete-untagged=true

6.3 性能调优参数

对于大型仓库,调整harbor.yml中的这些参数:

# 工作线程数配置 core: workers: 8 jobservice: max_job_workers: 10

记得在重装后立即修改默认admin密码,这是最常被忽视的安全隐患。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 0:23:26

面试鸭:高效智能的面试刷题神器,轻松备战求职面试

面试鸭:高效智能的面试刷题神器,轻松备战求职面试 【免费下载链接】mianshiya-public 持续维护的企业面试题库网站,帮你拿到满意 offer!⭐️ 2026年最新Java面试题、前端面试题、AI大模型面试题、AI Agent面试题、RAG面试题、C面试…

作者头像 李华
网站建设 2026/5/16 0:22:36

Obsidian Importer终极指南:如何轻松迁移你的数字笔记资产

Obsidian Importer终极指南:如何轻松迁移你的数字笔记资产 【免费下载链接】obsidian-importer Obsidian Importer lets you import notes from other apps and file formats into your Obsidian vault. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-im…

作者头像 李华
网站建设 2026/5/16 0:22:23

人类不擅长做出复杂的决策。人工智能可以指出这些错误。

图片来源:图片由编辑团队使用人工智能生成,仅供参考。来源:https://techxplore.com/news/2026-05-humans-bad-complex-decisions-ai.html当罗列优缺点不足以解决问题时,康奈尔大学研究人员开发的一种新型决策工具可以利用人工智能…

作者头像 李华
网站建设 2026/5/16 0:21:34

微信数据解密终极指南:5分钟掌握WechatDecrypt完整教程

微信数据解密终极指南:5分钟掌握WechatDecrypt完整教程 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 你是否曾因手机丢失或更换设备而无法访问重要的微信聊天记录?WechatDecrypt…

作者头像 李华
网站建设 2026/5/16 0:21:34

树莓派Cupcade迷你街机:从硬件组装到RetroPie配置全攻略

1. 项目概述与核心价值如果你和我一样,对复古游戏和嵌入式硬件有着浓厚的兴趣,那么亲手组装一台属于自己的迷你街机,绝对是一次充满乐趣和成就感的旅程。Cupcade套件正是这样一个绝佳的项目,它将树莓派的强大计算能力与经典的街机…

作者头像 李华
网站建设 2026/5/16 0:21:14

技术人如何用“输出倒逼输入”?写作、演讲、开源的三重飞轮

在软件测试领域,许多从业者都会遭遇相似的困境:收藏了上百份技术文档却从未打开,报名了自动化课程却止步于第三章,工作中反复执行相同的用例却感觉能力停滞。这种“输入焦虑”的根源,并非学习资源匮乏,而是…

作者头像 李华