# 实验室搭建 Harbor 记录


前置条件:

docker-conpose 安装 https://blog.csdn.net/liu_chen_yang/article/details/124688952

docker 安装 https://xie.infoq.cn/link?target=https%3A%2F%2Fblog.csdn.net%2Fliu_chen_yang%2Farticle%2Fdetails%2F123842609

  1. # harbor,私有镜像管理系统。

    img

  2. # 配置步骤:按照 https://xie.infoq.cn/article/faa9ee456452891828cc080b8 来就好

  1. # 一般配置 http 即可,下面是继续配置 https 的步骤

    按照 https://juejin.cn/post/7030414239181307918 步骤配置(参考前 5 步,第六步客户端参考本文第 4 点)。

    一般配置 http 主要面对的问题:

    • docekr 重启失败

      [root@AY13091717064020986bZ ~]# service docker start
      Redirecting to /bin/systemctl start  docker.service
      Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

      这个问题主要出现在修改 vi /etc/docker/daemon.json 之后,重启 docker 错误,一般就是 daemon.json 的文件内容出现格式错误。

    • 客户端不信任证书

      image-20231228150215674

      只需要正确配置客户端证书即可,例如下文。

    • 如果 https 不是默认 443,http 不是默认 80,那么反向代理可能会出问题

      image-20231228150356387

      这里,反向代理出现问题,主要体现为: docker login -uadmin -pHarbor12345 https://10.0.21.20:10443 但是任然会被重定向为 http。

      分析原因:

      image-20231228150512064

      这里同时打开 http 和 https,默认重定向到 https,

      所以这里有两种访问办法: 10.0.21.20:10010https://10.0.21.20:10443

      那么由于这里使用了代理,出现报错的原因就是因为,这里最开始写的

      image-20231228151020233

      改正为:

      image-20231228150851767

      当然这里也有其他解决办法:

    • 去掉 external_url

    1. docker login -uadmin -pHarbor12345 10.0.21.20:10010
  2. 客户端配置参考(简单):

    • 首先,需要配置客户机的不安全访问

      ubantu 和 centos 均如下:

      vi /etc/docker/daemon.json 
      #然后写入:
      "insecure-registries": ["192.168.8.75"]
      ***

      注意写入正确,不然 systemctl restart docker 会报错

      以下是一个正确的例子:

      image-20231228151901809

    • 客户和本机都不信任 CA 证书,这里需要

      image-20231228144125516

      解决这个问题,需要将 CA 证书传递给本机可信域里面,更新证书即可:

      #参考 ubantu:
      cp /etc/harbor/ca.crt /usr/local/share/ca-certificates/harbor-ca.crt #这里可以 scp 上传下载证书
      update-ca-certificates
      systemctl restart docker
      #参考 centos:
      cp your-ca.crt /etc/pki/ca-trust/source/anchors/#这里可以 scp 上传下载证书
      update-ca-trust
      systemctl restart docker

      获取到证书之后。

      • 最后重启本地 docker 即可

        systemctl daemon-reload
        systemctl restart docker

        到此为止,客户端就可以正确使用 Harbor 管理镜像了

        以下是一个正确的实例

        $ docker login XXX.XXX.XXX.XXX
        Username: 
        Password: 
        Login Succeeded
        # 上传之前先打 tag
        docker pull k8s.gcr.io/kubernetes-dashboard
        docker tag k8s.gcr.io/kubernetes-dashboard XXX.XXX.XXX.XXX/library/k8s.gcr.io/kubernetes-dashboard
        # 上传镜像
        docker push XXX.XXX.XXX.XXX/library/k8s.gcr.io/kubernetes-dashboard
        # 下载镜像
        docker pull XXX.XXX.XXX.XXX/library/k8s.gcr.io/kubernetes-dashboard

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Watsmal 微信支付

微信支付

Watsmal 支付宝

支付宝

Watsmal 贝宝

贝宝