1. 安装

    1. 下载安装包,可以在“Harbor Releases”查看更多版本

      wget https://github.com/goharbor/harbor/releases/download/v2.15.0-rc3/harbor-offline-installer-v2.15.0-rc3.tgz
      
    2. 解压缩

      tar -zxvf harbor-offline-installer-v2.15.0-rc3.tgz && rm -f harbor-offline-installer-v2.15.0-rc3.tgz
      
    3. 配置 harbor,编辑harbor.yml

      cd harbor && cp harbor.yml.tmpl harbor.yml
      vi harbor.yml
      
    • 搜索http related config并将端口号修改为一个不被占用的端口,例如:8080

      # http related config
      http:
        port: 8080
    • 搜索https related config并将对应的https、port、certificate、private_key注释掉

      # https related config
      # https:
        # port: 5443
        # certificate: /your/certificate/path
        # private_key: /your/private/key/path
    • 修改配置中的harbor_admin_password,这是默认账户admin的登陆密码(这个账户也可以用来 push 和 pull)
    1. 配置 docker,编辑/etc/docker/daemon.json增加下面这行

      "insecure-registries": ["docker.kyzy.cc:8080", "127.0.0.1:8080"]
      注意:每一个需要访问似有库存的机器上都需要进行这个配置
  2. 配置域名

    编辑 nginx 配置,设置代理转发(端口8080要与上面harbor.yml配置的 http 端口保持一致)

    proxy_pass http://127.0.0.1:8080;

    如需 https 方式访问可以参考《Let's Encrypt的https证书申请及安装(nginx)》不要使用 CloudFlare 的证书,因为他们的 CDN 对于每个请求(request body)的大小有限制,一旦超出就会中断传输,在镜像上传、下载过程中很容易超出限制,若请求超过限制,Cloudflare 将返回 ‌413 Request Entity Too Large‌ 错误。
    关于 CloudFlare 请求大小限制如下:

    • Free / Pro 计划‌:最大 ‌100 MB‌
    • Business 计划‌:最大 ‌200 MB‌
    • Enterprise 计划‌:默认 ‌500 MB‌
  3. 访问

    此时可以使用ip:端口(8080)来进行访问了,如果配置了 https,则访问的时候不需要带端口号 8080 了,但是其他的行为,例如:docker login / tag / push / pull依然需要带这个端口,如下:

    # 登录私有镜像仓库
    docker login https://docker.mydomain.com:8080
    # 构建镜像 -t 代表镜像名称, . 代表了`Dockerfile`位置)
    docker build -t my-app:v1.0 .
    # 为镜像标记 TAG
    docker tag my-app:v1.0 docker.mydomain.com:8080/test/my-app:v1.0
    # 将镜像推送到远程私有镜像仓库
    docker push docker.mydomain.com:8080/test/my-app:v1.0
    # 拉取远程私有镜像仓库中的镜像
    docker pull docker.mydomain.com:8080/test/my-app@sha256:xxx