容器化环境下私有镜像仓库部署指南

一、环境准备与组件说明

在构建私有镜像仓库前,需完成基础环境配置。建议采用Linux服务器(如CentOS 7/8或Ubuntu 20.04+),硬件配置需满足:4核CPU、8GB内存、50GB可用磁盘空间。系统需预先安装Docker引擎(版本≥19.03)和Docker Compose工具(版本≥1.25)。

1.1 Docker引擎安装

通过官方仓库安装最新稳定版Docker:

  1. # CentOS系统示例
  2. sudo yum install -y yum-utils
  3. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  4. sudo yum install docker-ce docker-ce-cli containerd.io
  5. sudo systemctl enable --now docker
  6. # Ubuntu系统示例
  7. sudo apt update
  8. sudo apt install docker-ce docker-ce-cli containerd.io
  9. sudo systemctl enable --now docker

1.2 Docker Compose部署

推荐使用二进制方式安装:

  1. # 下载指定版本(示例为1.29.2)
  2. sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  3. # 设置执行权限
  4. sudo chmod +x /usr/local/bin/docker-compose
  5. # 创建软链接
  6. sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  7. # 验证安装
  8. docker-compose version

二、Harbor核心组件解析

作为企业级镜像仓库解决方案,Harbor提供以下关键能力:

  • 多租户管理:支持项目级权限控制
  • 镜像安全:内置漏洞扫描与签名验证
  • 审计日志:完整记录操作轨迹
  • 复制策略:实现多仓库间镜像同步
  • UI管理:可视化操作界面

当前推荐使用v2.5+长期支持版本,该版本优化了存储性能并增强了RBAC权限模型。

三、离线部署实施流程

3.1 软件包获取与解压

从托管仓库获取离线安装包(以v2.5.3为例):

  1. wget https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz
  2. tar -xzvf harbor-offline-installer-v2.5.3.tgz
  3. cd harbor

3.2 配置文件定制

修改harbor.yml核心参数:

  1. hostname: 192.168.1.100 # 修改为实际服务器IP
  2. http:
  3. port: 8080 # 避免与现有服务冲突
  4. # https配置建议生产环境启用
  5. # certificate: /path/to/cert.pem
  6. # private_key: /path/to/key.pem
  7. harbor_admin_password: Harbor12345 # 设置管理员密码
  8. data_volume: /data/harbor # 自定义存储路径

3.3 安装执行与验证

执行自动化安装脚本:

  1. ./install.sh --with-trivy # 包含漏洞扫描组件

安装完成后验证服务状态:

  1. docker-compose ps
  2. # 正常应显示以下服务均为Up状态
  3. # Name Command State Ports
  4. # ------------------------------------------------------------------
  5. # harbor-core "/harbor/entrypoint.sh" ... Up
  6. # harbor-db "/docker-entrypoint.sh" ... Up
  7. # harbor-jobservice "/harbor/entrypoint.sh" ... Up
  8. # harbor-log "/bin/sh -c /usr/local/bin/ ..." Up
  9. # harbor-portal "nginx -g 'daemon off'" ... Up
  10. # nginx "nginx -g 'daemon off'" ... Up
  11. # redis "redis-server /etc/redis.conf" Up
  12. # registry "/entrypoint.sh /etc/regist ..." Up
  13. # trivy-adapter "/harbor/entrypoint.sh" ... Up

四、镜像操作实践指南

4.1 客户端配置

在需要推送/拉取镜像的节点配置:

  1. // /etc/docker/daemon.json
  2. {
  3. "insecure-registries": ["192.168.1.100:8080"]
  4. }

重启Docker服务使配置生效:

  1. systemctl daemon-reload
  2. systemctl restart docker

4.2 镜像推送流程

  1. 登录私有仓库:

    1. docker login 192.168.1.100:8080
    2. # 输入用户名admin及设置的密码
  2. 标记镜像:

    1. docker tag nginx:latest 192.168.1.100:8080/library/nginx:v1
  3. 执行推送:

    1. docker push 192.168.1.100:8080/library/nginx:v1

4.3 镜像拉取流程

对于公开项目可直接拉取:

  1. docker pull 192.168.1.100:8080/library/nginx:v1

私有项目需先登录后拉取,操作流程与推送相同。

五、生产环境优化建议

5.1 高可用架构

建议采用三节点部署模式:

  • 主节点:运行Core服务、UI、API
  • 从节点1:运行Registry、JobService
  • 从节点2:运行Database、Redis
    通过共享存储(如NFS或对象存储)实现数据持久化。

5.2 安全加固方案

  1. 启用HTTPS加密通信
  2. 配置LDAP集成实现统一认证
  3. 设置镜像保留策略(自动清理过期镜像)
  4. 定期执行漏洞扫描(Trivy组件)

5.3 监控告警体系

集成主流监控工具实现:

  • 存储空间使用率监控
  • 请求响应时间告警
  • 认证失败次数统计
  • 镜像复制任务状态跟踪

六、常见问题处理

6.1 端口冲突解决

若80端口被占用,修改配置文件后需执行:

  1. docker-compose down
  2. ./install.sh

6.2 存储空间不足

扩展存储容量步骤:

  1. 停止所有服务
  2. 扩容底层存储设备
  3. 更新harbor.yml中的data_volume路径
  4. 重新启动服务

6.3 证书配置错误

生产环境必须使用受信任CA签发的证书,自签名证书需确保所有客户端配置了正确的信任链。

通过完整实施上述方案,企业可构建安全可靠的私有镜像仓库,有效支撑容器化应用的持续交付需求。建议定期进行健康检查并备份关键数据,确保系统长期稳定运行。