Harbor 私有仓库构建

Harbor 私有仓库构建

一、Harbor 介绍

Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能

二、环境准备

1.硬件
资源 最低 推荐
中央处理器 2核 4核
内存 4GB 8GB
粗盘 40GB 160GB
2.软件
关键 版本 描述
Docker engine 17.06.0-ce+以上 https://docs.docker.com/engine/install/
Docker Compose 1.18.0以上 https://docs.docker.com/compose/install/
Openssl 最新的优先 用于为Harbor生成证书和密钥
3.网络端口

Harbor要求在目标主机上打开以下端口

端口 协议 说明
443 HTTPS Harbor和核心API接受此端口上的请求。可以在配置文件中更改此端口
4443 HTTPS 连接到 Harbor 的 Docker Content Trust 服务。仅在启用 Notary 时才需要。您可以在配置文件中更改此端口。
80 HTTP Harbor和核心API接受此端口上的请求。可以在配置文件中更改此端口

三、下载Harbor安装程序

1.打开下载页面

https://github.com/goharbor/harbor/releases

2.选择离线安装或者在线安装

3.使用tar提取安装包
1
bash $ tar xzvf harbor-offline-installer-version.tgz

四、配置HTTPS访问Harbor

1.准备HTTPS证书

yourdomain.com.crt

yourdomain.com.key

2.向Harbor和Docker提供证书
  1. 将服务器证书和密钥复制到 Harbor 主机上的 certficates 文件夹中。

    1
    2
    cp yourdomain.com.crt /data/cert/
    cp yourdomain.com.key /data/cert/
  2. 转换yourdomain.com.crtyourdomain.com.cert,供 Docker 使用。
    Docker 守护进程将.crt文件解释为 CA 证书,将.cert文件解释为客户端证书。

    1
    openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert

  3. 重启Docker引擎

    1
    systemctl restart docker
3.配置Harbor YML文件
  1. 在harbor的安装目录下找到harbor.yml.tmpl并复制一份

    1
    cp harbor.yml.tmpl harbor.ymls
  1. 配置主机名

    1
    2
    3
    # The IP address or hostname to access admin UI and registry service.
    # DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
    hostname: yourdomain.com
  1. 配置HTTPS的证书

    1
    2
    3
    4
    5
    6
    https:
    # https port for harbor, default is 443
    port: 443
    # The path of cert and key files for nginx
    certificate: /var/lib/sse/keys/yourdomain.com.crt
    private_key: /var/lib/sse/keys/yourdomain.com.key
  2. 配置镜像数据存放地址

    1
    2
    # The default data volume
    data_volume: /var/lib/sse/data
  3. 指定管理员密码

    1
    2
    3
    4
    # The initial password of Harbor admin
    # It only works in first time to install harbor
    # Remember Change the admin password from UI after launching Harbor.
    harbor_admin_password: Harbor12345
4.部署或重新配置Harbor
  1. 运行prepare脚本以启用 HTTPS。

    Harbor 使用一个nginx实例作为所有服务的反向代理。您可以使用prepare脚本进行配置nginx以使用 HTTPS。该prepare在Harbor的安装包,在同级别的install.sh脚本。

    1
    2
    ./prepare
    ./install.sh
  2. 如果 Harbor 正在运行,请停止并删除现有实例。

    您的镜像数据保留在文件系统中,因此不会丢失任何数据。

    1
    docker-compose down -v
  3. 重启 Harbor

    1
    docker-compose up -d

五、测试访问

1
https://yourdomain.com