使用Docker与Docker Compose搭建远程私有镜像仓库Harbor

一、引言

在容器化技术日益普及的今天,如何高效、安全地管理容器镜像成为开发者及企业用户关注的焦点。Harbor作为一款开源的企业级私有镜像仓库,提供了强大的镜像管理、安全控制及访问策略功能,成为众多团队的首选。本文将详细介绍如何使用Docker与Docker Compose快速搭建一个远程私有镜像仓库Harbor,帮助开发者解决镜像存储与管理的痛点。

二、环境准备

在开始搭建Harbor之前,需确保服务器满足以下条件:

  • 操作系统:推荐使用Linux系统,如Ubuntu 20.04 LTS或CentOS 7/8。
  • Docker:安装最新稳定版的Docker Engine。
  • Docker Compose:安装与Docker版本兼容的Docker Compose。
  • 网络:确保服务器有稳定的公网IP或域名,以便远程访问。
  • 存储:准备足够的磁盘空间用于存储镜像。

三、安装Docker与Docker Compose

1. 安装Docker

以Ubuntu为例,执行以下命令安装Docker:

  1. # 更新软件包索引
  2. sudo apt-get update
  3. # 安装依赖
  4. sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  5. # 添加Docker官方GPG密钥
  6. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  7. # 设置稳定版仓库
  8. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  9. # 安装Docker Engine
  10. sudo apt-get update
  11. sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  12. # 验证安装
  13. sudo docker run hello-world

2. 安装Docker Compose

  1. # 下载最新版Docker Compose
  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. docker-compose --version

四、下载Harbor配置文件

访问Harbor官方GitHub仓库(https://github.com/goharbor/harbor/releases),下载最新版的Harbor离线安装包。解压后,进入`harbor`目录,找到`harbor.yml.tmpl`文件,这是Harbor的配置模板。

五、配置Harbor

1. 复制模板文件

  1. cp harbor.yml.tmpl harbor.yml

2. 编辑配置文件

使用文本编辑器打开harbor.yml,根据实际需求修改以下关键配置:

  • hostname:设置为服务器的公网IP或域名。
  • http/https:根据是否启用HTTPS配置相应的端口(80/443)。
  • certificate/private_key:若启用HTTPS,需指定证书和私钥路径。
  • database:配置数据库密码(默认密码为root123,建议修改)。
  • harbor_admin_password:设置Harbor管理员密码。
  • data_volume:指定镜像存储路径。

示例配置片段:

  1. hostname: your.domain.com
  2. http:
  3. port: 80
  4. # https:
  5. # port: 443
  6. # certificate: /path/to/your/certificate.pem
  7. # private_key: /path/to/your/private_key.pem
  8. database:
  9. password: your_db_password
  10. harbor_admin_password: your_admin_password
  11. data_volume: /data/harbor

六、使用Docker Compose启动Harbor

1. 生成配置

harbor目录下执行以下命令,根据harbor.yml生成Docker Compose配置文件:

  1. ./prepare

2. 启动Harbor

  1. docker-compose up -d

此命令将以后台模式启动Harbor及其依赖服务(如数据库、Redis等)。

3. 验证服务

访问http://your.domain.com(或https://如果启用了HTTPS),使用配置中设置的管理员账号和密码登录Harbor管理界面,确认服务正常运行。

七、安全设置与优化

1. 启用HTTPS

为确保数据传输安全,强烈建议启用HTTPS。需准备有效的SSL证书和私钥,并在harbor.yml中正确配置。

2. 访问控制

  • 用户管理:在Harbor管理界面创建用户,分配不同权限(如项目管理员、开发者等)。
  • 项目设置:为每个项目配置访问策略,限制镜像的拉取和推送权限。
  • 机器人账号:为CI/CD流程创建机器人账号,自动管理镜像。

3. 定期维护

  • 日志监控:定期检查Harbor及Docker服务日志,及时发现并解决问题。
  • 备份数据:定期备份Harbor数据库和镜像存储,防止数据丢失。
  • 更新版本:关注Harbor官方更新,及时升级以获取新功能和安全补丁。

八、结论

通过Docker与Docker Compose搭建远程私有镜像仓库Harbor,不仅简化了部署流程,还提供了强大的镜像管理和安全控制功能。本文详细介绍了从环境准备、配置到启动的全过程,并提供了安全设置与优化的建议,旨在帮助开发者高效、安全地管理容器镜像。随着容器化技术的不断发展,Harbor将成为您构建现代化应用不可或缺的一部分。