Docker Harbor镜像仓库搭建与Pull操作全解析

一、引言

随着容器化技术的普及,Docker作为容器化的标准工具,已经被广泛应用于开发、测试及生产环境。而Docker镜像仓库作为镜像存储与分发的中心,其重要性不言而喻。Harbor作为一款开源的企业级Docker镜像仓库管理工具,提供了丰富的功能,如权限管理、镜像复制、漏洞扫描等。本文将详细介绍如何搭建Docker Harbor镜像仓库,并演示如何从该仓库中拉取(Pull)镜像。

二、Docker Harbor镜像仓库搭建

1. 环境准备

在开始搭建之前,需要确保服务器满足以下基本要求:

  • 操作系统:推荐使用CentOS 7或Ubuntu 18.04及以上版本。
  • Docker:已安装并运行Docker服务。
  • Docker Compose:用于定义和运行多容器的Docker应用,Harbor通常使用Docker Compose进行部署。
  • 资源:根据实际需求分配足够的CPU、内存和磁盘空间。

2. 下载Harbor安装包

访问Harbor的GitHub仓库(https://github.com/goharbor/harbor/releases),下载最新版本的Harbor安装包。解压后,进入解压目录。

3. 配置Harbor

在解压目录下,找到harbor.ymlharbor.yml.tmpl文件(不同版本文件名可能略有不同),这是Harbor的主要配置文件。根据实际需求修改以下关键配置:

  • hostname:设置Harbor的访问域名或IP地址。
  • http/https:配置监听端口,生产环境建议启用HTTPS。
  • certificate:如果启用HTTPS,需要配置SSL证书。
  • database:数据库配置,Harbor默认使用内置的PostgreSQL数据库。
  • storage_driver:存储驱动配置,支持多种后端存储,如本地文件系统、S3等。
  • admin_password:设置Harbor管理员密码。

4. 安装Harbor

在配置文件修改完成后,执行以下命令安装Harbor:

  1. # 进入Harbor解压目录
  2. cd harbor
  3. # 执行安装脚本
  4. ./install.sh

安装完成后,Harbor服务将自动启动。可以通过浏览器访问配置的hostname和端口(如https://your-harbor-domain),使用管理员账号登录。

三、从Harbor镜像仓库Pull镜像

1. 配置Docker信任Harbor仓库

在从Harbor拉取镜像之前,需要确保Docker客户端信任Harbor仓库。这通常涉及到配置Docker的insecure-registries(如果Harbor使用HTTP)或正确配置TLS证书(如果Harbor使用HTTPS)。

对于HTTPS配置,确保Docker客户端的/etc/docker/daemon.json文件包含如下内容(如果Harbor证书已添加到系统信任链中,则可能不需要额外配置):

  1. {
  2. "insecure-registries": [],
  3. "registry-mirrors": [],
  4. "tls-verify": true
  5. }

如果Harbor使用自签名证书,可能需要将证书文件复制到Docker的信任目录中,并重启Docker服务。

2. 登录Harbor仓库

使用Docker命令行工具登录Harbor仓库:

  1. docker login your-harbor-domain

输入在Harbor中配置的用户名和密码。登录成功后,Docker客户端将保存认证信息,以便后续操作。

3. Pull镜像

登录成功后,即可从Harbor仓库中拉取镜像。假设Harbor仓库中有一个名为library/nginx的镜像,标签为latest,则拉取命令如下:

  1. docker pull your-harbor-domain/library/nginx:latest

Docker客户端将连接到Harbor仓库,下载指定的镜像到本地。

四、高级功能与最佳实践

1. 权限管理

Harbor提供了细粒度的权限管理功能,可以创建项目、用户和角色,并分配不同的权限。建议根据团队结构和使用场景,合理规划权限分配,确保镜像的安全性和可控性。

2. 镜像复制

Harbor支持镜像复制功能,可以将镜像从一个Harbor实例复制到另一个Harbor实例,实现镜像的跨地域或跨数据中心分发。这对于分布式团队和灾备场景非常有用。

3. 漏洞扫描

Harbor集成了漏洞扫描工具,可以定期扫描仓库中的镜像,检测其中是否存在已知的安全漏洞。建议开启此功能,并定期查看扫描报告,及时修复发现的漏洞。

4. 备份与恢复

定期备份Harbor的数据和配置非常重要,以防数据丢失或损坏。Harbor提供了备份脚本,可以方便地备份数据库和配置文件。同时,也需要制定恢复计划,确保在需要时能够快速恢复Harbor服务。

五、结论

本文详细介绍了如何搭建Docker Harbor镜像仓库,并演示了如何从该仓库中拉取镜像。通过Harbor,开发者可以方便地管理Docker镜像,实现镜像的安全存储和分发。希望本文能为开发者提供有价值的参考,助力容器化技术的广泛应用。