别再乱删文件了!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记录输出中显示的STATUS和VOLUME NAME这将决定后续清理策略。2.2 关键数据备份即使要卸载这些数据也建议保留配置文件harbor.yml中的自定义参数特别是external_database配置镜像存储/data/registry目录下的所有镜像层文件扫描报告/data/trivy-adapter中的安全扫描结果使用以下命令打包关键数据tar -czvf harbor_backup_$(date %Y%m%d).tar.gz \ /path/to/harbor/harbor.yml \ /data/registry \ /data/trivy-adapter3. 分步骤彻底卸载Harbor3.1 停止并移除容器服务进入Harbor安装目录执行标准停止命令cd /path/to/harbor docker-compose down -v这里的-v参数会同时删除docker-compose中定义的匿名卷但不会删除命名卷。3.2 清理Docker残留资源手动清理可能遗漏的资源# 删除所有Harbor相关容器 docker ps -aq --filter nameharbor | xargs docker rm -f # 删除所有Harbor相关镜像 docker images -aq --filter reference*harbor* | xargs docker rmi -f # 清理网络 docker network ls -q --filter nameharbor | xargs docker network rm3.3 删除持久化数据根据安装时的配置需要清理以下目录目录路径内容类型是否必须删除/data数据库、Redis、镜像存储重装必删/var/log/harbor日志文件可选/etc/harbor配置文件建议删除使用find命令定位所有相关文件sudo find / -name *harbor* -exec ls -ld {} \;确认无误后执行删除sudo rm -rf /data /etc/harbor /var/log/harbor4. 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-db6. 高级维护技巧6.1 使用外部数据库在harbor.yml中配置外部PostgreSQL可避免数据丢失external_database: harbor: host: postgresql-server port: 5432 db_name: harbor username: harbor password: yourpassword6.2 自动化清理策略在/etc/cron.daily/创建定时任务脚本#!/bin/bash # 清理30天前的镜像标签 docker exec -it harbor-registry registry garbage-collect \ /etc/registry/config.yml --delete-untaggedtrue6.3 性能调优参数对于大型仓库调整harbor.yml中的这些参数# 工作线程数配置 core: workers: 8 jobservice: max_job_workers: 10记得在重装后立即修改默认admin密码这是最常被忽视的安全隐患。

相关新闻

最新新闻

日新闻

周新闻

月新闻