按 Enter 键跳转到正文

Harbor 使用

Harbor 使用

1. 安装Harbor

此处使用官方离线安装包

1. 下载解压

 1# 安装编译依赖
 2# 安装 Docker
 3sudo yum install -y yum-utils
 4sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 5sudo yum install -y docker-ce docker-ce-cli containerd.io
 6sudo systemctl enable --now docker
 7
 8# 安装 Docker Compose 页面下载的话注意版本比如 验证系统架构uname -m输出x86_64
 9sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
10sudo chmod +x /usr/local/bin/docker-compose
11
12# 下载Harbor并解压 (我用的离线安装包包含所有依赖镜像)
13wget https://github.com/goharbor/harbor/releases/download/v2.12.3/harbor-offline-installer-v2.12.3.tgz
14tar -xzvf harbor-offline-installer-v2.12.3.tgz
15cd harbor

2. 生成自签名证书(IP方式)

如果使用http则不需要设置

1sudo mkdir -p /etc/harbor/ssl
2sudo chmod 755 /etc/harbor/ssl
3sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
4-keyout /etc/harbor/ssl/your_ip.key \
5-out /etc/harbor/ssl/your_ip.crt \
6-subj "/CN=your_ip" -addext "subjectAltName=IP:your_ip"

验证权限

1sudo chmod 644 /etc/harbor/ssl/115.190.22.13.*
2sudo chown -R 10000:10000 /etc/harbor/ssl  # Harbor容器用户需可读

3. 修改harbor.yml配置

1cp harbor.yml.tmpl harbor.yml
2vim harbor.yml

harbor.yml示例

# 基础配置
hostname: 公网IP  # 例如 123.123.123.123
http:
port: 80           # HTTP 端口
falseenabled: false
https:
port: 443
certificate: /etc/harbor/ssl/your_ip.crt
private_key: /etc/harbor/ssl/your_ip.key

# 数据库和存储
database:
password: "Harbor12345"
data_volume: "/data"  # 数据存储路径

# 管理员账户
harbor_admin_password: "Harbor12345"  # 修改默认密码!

# 其他服务(按需启用)
chart:
absolute_url: disabled
log:
level: info
local:
   rotate_count: 50
   rotate_size: 200M

4. 执行安装

1sudo ./install.sh

5. 防火墙配置

1sudo firewall-cmd --permanent --add-port=443/tcp
2sudo firewall-cmd --permanent --add-port=4443/tcp  # Docker Registry端口
3sudo firewall-cmd --reload

6. 客户端配置

  1. 如果使用https 需要Docker 客户端信任自签名证书 bash # 将生成的 .crt 文件复制到 Docker 客户端 sudo mkdir -p /etc/docker/certs.d/您的公网IP:443 sudo scp /etc/harbor/ssl/your_ip.crt /etc/docker/certs.d/您的公网IP:443/ca.crt sudo systemctl restart docker
  2. 如果使用http Docker 客户端取消 HTTPS 限制
    1sudo tee /etc/docker/daemon.json <<-'EOF'
    2{
    3"insecure-registries": ["你的IP:8080"]  # 例如 "192.168.1.100:8080"
    4}
    5EOF
    6
    7# 重启 Docker
    8sudo systemctl restart docker
    
  3. 登录 Harbor
1docker login 您的公网IP -u admin -p Harbor12345

7. 验证安装

  1. 检查服务状态
    1docker-compose ps
    
    正常输出应显示所有服务为 Up 状态。
  2. 浏览器访问
    • 访问 https://ip地址
    • 用户名: admin,密码: YourSecurePassword123
  3. API测试
    1curl -vk https://替换自己IP/api/v2.0/ping
    
    应返回 {“message”:“pong”}。

2. 维护命令

操作命令
停止 Harbordocker-compose down -v
启动 Harbordocker-compose up -d
卸载 Harborsudo ./install.sh –uninstall
备份数据tar -czvf harbor-backup.tar.gz /data
  • 这些命令执行需要在harbor的安装目录

3. 页面操作指南

  1. 访问 Harbor 控制台
    • 浏览器打开:https://<你的IP或域名>(如果使用 HTTP,则访问 http://<你的IP或域名>)
    • 默认账号:admin
    • 默认密码:harbor.yml 中配置的 harbor_admin_password(如 Harbor12345)
  2. 首次登录后操作
    1. 修改密码(强制):
      • 登录后系统会提示修改默认密码。
    2. 创建项目(Project):
      • 导航至 项目 → 新建项目
      • 输入项目名称(如 my-project),选择访问级别(公开/私有)。
    3. 推送镜像到 Harbor:
      1# 登录 Docker 客户端
      2docker login <你的IP或域名> -u admin -p <你的密码>
      3
      4# 标记并推送镜像
      5docker tag nginx:latest <你的IP或域名>/my-project/nginx:v1
      6docker push <你的IP或域名>/my-project/nginx:v1
      
    4. 从 Harbor 拉取镜像:
    1docker pull <你的IP或域名>/my-project/nginx:v1
    

4. 核心功能操作

  1. 用户管理

    • 路径:系统管理 → 用户管理
    • 操作:
      • 创建新用户
      • 分配角色(如项目管理员、开发者)
  2. 镜像安全扫描

    • 路径:进入项目 → 选择镜像 → 扫描
    • 功能:自动检测镜像漏洞(需安装 Trivy 插件)。
  3. 配置 Webhook

    • 路径:项目 → 机器人账户 → 新建Webhook
    • 用途:监听镜像推送事件,触发 CI/CD 流程。
  4. 启用内容信任(Notary)

    • 路径:系统管理 → 配置 → 内容信任
    • 作用:确保镜像来源可信(需额外配置证书)。

5. 常见问题排查

  1. 如果./install.sh执行出现问题,检查修改后完全清理后重新安装
    1# 停止并删除旧容器
    2docker-compose down -v
    3
    4# 删除旧配置
    5sudo rm -rf /data/database /data/registry /data/secret
    6
    7# 重新安装
    8sudo ./install.sh
    
  2. 无法推送/拉取镜像
    1# 确认 Docker 客户端已信任证书
    2ls /etc/docker/certs.d/<你的IP或域名>:443/ca.crt
    3
    4# 检查防火墙
    5sudo firewall-cmd --list-ports | grep 443
    
  3. 控制台访问卡顿
  • 优化方案:
    1# 调整 Harbor 资源限制
    2vim docker-compose.yml
    
  • 修改 resources 部分(示例):
    1nginx:
    2deploy:
    3   resources:
    4      limits:
    5      cpus: "1"
    6      memory: 2G
    
  1. 忘记管理员密码
    1# 进入数据库容器重置
    2docker exec -it harbor-db psql -U postgres -d registry
    3UPDATE harbor_user SET password='$2a$10$123456' WHERE username='admin';
    

6. 流程图:镜像推拉流程

图片描述

参考 [Harbor 官方文档]。(https://goharbor.io/docs/)

发表评论