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

引言

在容器化技术日益普及的今天,Docker已成为开发者部署应用的标准工具。然而,随着项目复杂度的提升,如何高效管理Docker镜像、确保镜像安全成为亟待解决的问题。Harbor作为一款开源的企业级私有镜像仓库,提供了强大的镜像管理、权限控制及安全审计功能。本文将手把手教你完成Docker与Harbor私有镜像仓库的搭建,并详细阐述从安装到镜像推送的全流程。

一、环境准备

1.1 服务器要求

  • 操作系统:推荐使用CentOS 7/8或Ubuntu 18.04/20.04 LTS。
  • 硬件配置:至少4GB内存、2核CPU、20GB以上磁盘空间(根据实际镜像大小调整)。
  • 网络环境:确保服务器能够访问互联网,或已配置好本地源。

1.2 安装Docker

  1. # CentOS 7/8 安装Docker
  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 start docker
  6. sudo systemctl enable docker
  7. # Ubuntu 18.04/20.04 LTS 安装Docker
  8. sudo apt-get update
  9. sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  10. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  11. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  12. sudo apt-get update
  13. sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  14. sudo systemctl start docker
  15. sudo systemctl enable docker

二、Harbor安装与配置

2.1 下载Harbor

访问Harbor官方GitHub仓库(https://github.com/goharbor/harbor/releases),下载最新稳定版。

2.2 解压与配置

  1. tar xvf harbor-online-installer-<version>.tgz
  2. cd harbor
  3. cp harbor.yml.tmpl harbor.yml

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

  1. hostname: your.domain.com # 替换为你的域名或IP
  2. http:
  3. port: 80
  4. https:
  5. certificate: /path/to/your/certificate.pem # HTTPS证书路径(如需)
  6. private_key: /path/to/your/private_key.pem # HTTPS私钥路径(如需)
  7. harbor_admin_password: Harbor12345 # 管理员密码
  8. database:
  9. password: root123 # 数据库密码

2.3 安装Harbor

  1. ./install.sh

安装完成后,访问http://your.domain.com(或配置的HTTPS地址),使用默认管理员账号admin和设置的密码登录。

三、Docker客户端配置

3.1 配置Docker信任Harbor仓库

编辑/etc/docker/daemon.json(如不存在则创建),添加以下内容:

  1. {
  2. "insecure-registries": ["your.domain.com"] # 如果是HTTP访问,需添加此配置;HTTPS则无需
  3. }

重启Docker服务:

  1. sudo systemctl restart docker

3.2 登录Harbor仓库

  1. docker login your.domain.com

输入Harbor管理员账号和密码,登录成功。

四、镜像推送与拉取实战

4.1 推送镜像到Harbor

4.1.1 标记镜像

  1. docker tag nginx:latest your.domain.com/library/nginx:latest

4.1.2 推送镜像

  1. docker push your.domain.com/library/nginx:latest

推送完成后,登录Harbor管理界面,可在“项目”->“library”下看到刚推送的镜像。

4.2 从Harbor拉取镜像

  1. docker pull your.domain.com/library/nginx:latest

五、高级功能与最佳实践

5.1 项目与权限管理

  • 创建项目:在Harbor管理界面,点击“新建项目”,设置项目名称、访问级别(公开/私有)。
  • 用户与角色管理:添加用户,分配角色(如开发者、访客),控制对项目的访问权限。

5.2 镜像复制与同步

  • 配置复制策略:在“系统管理”->“复制管理”中,设置镜像复制规则,实现不同Harbor实例间的镜像同步。

5.3 安全审计与日志

  • 查看操作日志:在“系统管理”->“日志”中,查看用户操作记录,便于安全审计。

5.4 定期备份

  • 备份数据:使用Harbor自带的备份脚本或手动备份数据库和配置文件,确保数据安全。

六、常见问题与解决方案

6.1 登录失败

  • 检查网络:确保Docker客户端能够访问Harbor服务器。
  • 验证证书:如果是HTTPS访问,检查证书是否有效且配置正确。
  • 密码错误:重置管理员密码或检查输入是否正确。

6.2 镜像推送/拉取慢

  • 优化网络:检查网络带宽,考虑使用CDN或镜像加速服务。
  • 调整Harbor配置:增加Harbor服务器的资源(CPU、内存),优化数据库性能。

七、总结

通过本文的详细讲解,相信你已经掌握了Docker与Harbor私有镜像仓库的搭建与实战技巧。从环境准备、Harbor安装配置,到Docker客户端设置、镜像推送与拉取,再到高级功能与最佳实践,每一步都至关重要。私有镜像仓库的建立,不仅提高了镜像管理的效率,更增强了应用部署的安全性。希望本文能成为你容器化道路上的得力助手,助力你的项目更加稳健、高效地运行。