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

CI/CD(四) docker-compose 安装harbor

一、部署 Harbor

1、下载安装包

# 下载离线安装包(以 v2.9.1 为例)
HARBOR_VERSION="v2.9.1"
wget https://github.com/goharbor/harbor/releases/download/${HARBOR_VERSION}/harbor-offline-installer-${HARBOR_VERSION}.tgz

# 解压到 /opt 目录
sudo tar xvf harbor-offline-installer-${HARBOR_VERSION}.tgz -C /docker/software
cd /docker/software/harbor

2 、修改配置文件

sudo cp harbor.yml.tmpl harbor.yml
sudo nano harbor.yml

配置文件示例(关键部分):

hostname: your-server-ip-or-domain.com  # 必须修改
http:
  port: 80

# 如需 HTTPS 请取消注释以下内容
# https:
#   port: 443
#   certificate: /your/certificate/path
#   private_key: /your/private/key/path

harbor_admin_password: YourStrongPassword  # 必须修改
data_volume: /data/harbor                   # 确保目录存在

3 、执行安装

sudo ./install.sh

二、验证部署

1、 检查容器状态

sudo docker-compose ps

2 、访问 Web 界面

浏览器访问:

http://your-server-ip-or-domain.com

使用账号:admin + 配置的密码登录

三、客户端配置

1、 配置 Docker 信任仓库

# 编辑 Docker 配置文件
sudo nano /etc/docker/daemon.json

# 添加以下内容(HTTP 协议需要)
{
  "insecure-registries": ["your-server-ip-or-domain.com"]
}

# 重启 Docker
sudo systemctl restart docker

2 、推送镜像示例

# 登录仓库
docker login your-server-ip-or-domain.com -u admin

# 标记并推送镜像
docker tag nginx:latest your-server-ip-or-domain.com/library/nginx:latest
docker push your-server-ip-or-domain.com/library/nginx:latest

私有配置

/etc/docker/daemon.json新增私有仓库,必须新增,不然宿主机登录不了Harbor,或者开启https,才能登录

"insecure-registries": ["10.60.0.20:18080"]

热加载(不用重启docker)

# 发送SIGHUP信号热加载
sudo kill -SIGHUP $(pidof dockerd)

四、进阶配置

1、生成自签名证书(HTTPS)

sudo mkdir -p /etc/harbor/certs
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/harbor/certs/harbor.key \
  -out /etc/harbor/certs/harbor.crt \
  -subj "/CN=your-server-ip-or-domain.com"

2、设置开机自启

创建服务文件 /etc/systemd/system/harbor.service

[Unit]
Description=Harbor Service
After=docker.service

[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/harbor
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down

[Install]
WantedBy=multi-user.target

启用服务:

sudo systemctl enable harbor

常见问题

Q1: 推送镜像时报证书错误

✅ 解决方案:

  1. 确认已配置 insecure-registries
  2. 重启 Docker 服务

Q2: Web 界面无法访问

✅ 检查步骤:

docker exec -it harbor-db psql -U postgres
  1. 防火墙是否开放端口:sudo ufw allow 80/tcp
  2. 容器是否正常运行:sudo docker-compose ps

Q3: 忘记管理员密码

✅ 重置方法:

  1. 进入 PostgreSQL 容器:
    docker exec -it harbor-db psql -U postgres
  2. 执行 SQL 命令:
    UPDATE harbor_user SET salt='', password='' WHERE username='admin';
  3. 新密码将自动同步为 harbor.yml 中的配置值

相关文章:

  • WebGPU 是比 WASM 更好的选择吗? (Is WebGPU a Better Choice Than WASM? )
  • 鸿蒙开发之背景图片的使用
  • mongoShake数据迁移
  • 什么是Vue.js
  • 网管软件Zabbix3.4.8 使用笔记 - 更改记录保留的时间 20250325
  • 【Ai】--- 可视化 DeepSeek-r1 接入 Open WebUI(超详细)
  • 深入理解数据类型、建表与数据库引擎
  • K8S——PaaS平台pod调度机制
  • Rust从入门到精通之进阶篇:16.智能指针
  • 选素数--线性筛
  • 网络基础-路由器和交换机工作配置
  • Redis--redis客户端
  • NodeJs之fs模块
  • Gunicorn部署指南:核心参数详解与实践
  • (UI自动化测试web端)第二篇:元素定位的方法_css定位之ID选择器
  • 【Spring AI】基于专属知识库的RAG智能问答小程序开发——功能优化:用户鉴权主体功能开发
  • 从输入 URL 到页面加载完成,发生了什么?
  • sql结尾加刷题
  • 【LeetCode 题解】算法:4.寻找两个正序数组的中位数
  • Spring WebSecurityCustomizer 的作用
  • 只做PC版网站/网站软文推广网站
  • 网站建设的代理/阿里指数查询手机版
  • 怎么看一个网站是用什么代码做的/抖来查关键词搜索排名
  • 做网站靠教育赚钱/关键词优化公司靠谱推荐
  • 自己做网站分销/南通seo
  • 南京网站建设优化/上海牛巨仁seo