Docker+Harbor实战:私有镜像仓库搭建与镜像推送全流程

Docker + Harbor 私有镜像仓库搭建与实战指南:从安装到镜像推送全流程

在容器化技术日益普及的今天,Docker 作为容器化的标准工具,已被广泛应用于开发、测试及生产环境中。然而,随着容器镜像数量的增加,如何高效、安全地管理这些镜像成为开发者及企业面临的重要问题。Harbor,作为一个开源的企业级 Docker 私有镜像仓库,提供了权限管理、镜像复制、漏洞扫描等高级功能,成为解决这一问题的理想选择。本文将手把手教你完成 Docker 与 Harbor 私有镜像仓库的搭建,并详细介绍从安装到镜像推送的全流程。

一、环境准备

1.1 服务器配置

  • 操作系统:推荐使用 CentOS 7/8 或 Ubuntu 18.04/20.04,这些系统对 Docker 和 Harbor 的支持较为成熟。
  • 硬件要求:至少 4GB 内存(推荐 8GB 以上),2 核 CPU,20GB 以上的磁盘空间(根据镜像数量调整)。
  • 网络配置:确保服务器有稳定的公网 IP 或内网 IP,并开放必要的端口(如 80、443、22 等)。

1.2 Docker 安装

在服务器上安装 Docker 是搭建 Harbor 的前提。以 CentOS 7 为例:

  1. # 卸载旧版本(如果有)
  2. sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
  3. # 安装依赖
  4. sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  5. # 添加 Docker 官方仓库
  6. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  7. # 安装 Docker CE
  8. sudo yum install -y docker-ce docker-ce-cli containerd.io
  9. # 启动 Docker 并设置开机自启
  10. sudo systemctl start docker
  11. sudo systemctl enable docker

验证 Docker 安装:

  1. sudo docker run hello-world

二、Harbor 安装与配置

2.1 下载 Harbor

访问 Harbor 官方 GitHub 下载最新版本的 Harbor 安装包。以 v2.4.0 版本为例:

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

2.2 配置 Harbor

编辑 harbor.yml 文件,修改以下关键配置:

  1. # 主机名,设置为服务器的 IP 或域名
  2. hostname: your.server.ip.or.domain
  3. # HTTP 监听端口
  4. http:
  5. port: 80
  6. # HTTPS 配置(推荐启用)
  7. # https:
  8. # port: 443
  9. # certificate: /path/to/your/certificate.pem
  10. # private_key: /path/to/your/private_key.pem
  11. # 管理员密码
  12. harbor_admin_password: Harbor12345
  13. # 数据库密码(可选)
  14. database:
  15. password: root123

2.3 安装 Harbor

执行安装脚本:

  1. sudo ./install.sh

安装完成后,访问 http://your.server.ip.or.domain(或 HTTPS 地址),使用默认用户名 admin 和配置的密码登录。

三、HTTPS 配置(可选但推荐)

为了增强安全性,建议为 Harbor 配置 HTTPS。以下以 Let’s Encrypt 免费证书为例:

3.1 安装 Certbot

  1. # Ubuntu
  2. sudo apt-get install -y certbot python3-certbot-nginx
  3. # CentOS
  4. sudo yum install -y certbot python3-certbot-nginx

3.2 获取证书

  1. sudo certbot certonly --nginx -d your.server.ip.or.domain --email your@email.com --agree-tos --no-eff-email

3.3 配置 Harbor 使用 HTTPS

修改 harbor.yml 中的 HTTPS 配置部分,指向获取的证书和私钥文件。

重新运行安装脚本:

  1. sudo ./prepare
  2. sudo docker-compose down
  3. sudo docker-compose up -d

四、镜像推送实战

4.1 登录 Harbor

在需要推送镜像的机器上,首先登录 Harbor:

  1. docker login your.server.ip.or.domain

输入用户名 admin 和密码。

4.2 标记镜像

假设你有一个本地镜像 myapp:latest,需要将其推送到 Harbor 的 library 项目下:

  1. docker tag myapp:latest your.server.ip.or.domain/library/myapp:latest

4.3 推送镜像

  1. docker push your.server.ip.or.domain/library/myapp:latest

4.4 验证镜像

登录 Harbor 管理界面,查看 library 项目下是否已存在 myapp:latest 镜像。

五、高级功能探索

5.1 项目与用户管理

Harbor 支持创建多个项目,每个项目可以有独立的成员和权限设置。通过管理界面可以轻松添加/删除用户,分配角色(如项目管理员、开发者、访客等)。

5.2 镜像复制

Harbor 支持镜像在不同项目或不同 Harbor 实例之间的复制,这对于多地域部署或灾备非常有用。

5.3 漏洞扫描

集成 Clair 进行镜像漏洞扫描,及时发现并修复镜像中的安全漏洞。

六、总结与展望

通过本文的介绍,你已经掌握了 Docker 与 Harbor 私有镜像仓库的搭建流程,从环境准备、Docker 安装、Harbor 配置到镜像推送,每一步都详细阐述。Harbor 不仅提供了基本的镜像存储功能,还通过权限管理、镜像复制、漏洞扫描等高级功能,极大地提升了镜像管理的效率和安全性。未来,随着容器化技术的不断发展,Harbor 也将不断完善,为开发者提供更加便捷、安全的镜像管理解决方案。