# 实验室搭建 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
-
# 一般配置 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 的文件内容出现格式错误。 -
客户端不信任证书
只需要正确配置客户端证书即可,例如下文。
-
如果 https 不是默认 443,http 不是默认 80,那么反向代理可能会出问题
这里,反向代理出现问题,主要体现为:
docker login -uadmin -pHarbor12345 https://10.0.21.20:10443
但是任然会被重定向为 http。分析原因:
这里同时打开 http 和 https,默认重定向到 https,
所以这里有两种访问办法:
10.0.21.20:10010
和https://10.0.21.20:10443
那么由于这里使用了代理,出现报错的原因就是因为,这里最开始写的
改正为:
当然这里也有其他解决办法:
-
去掉 external_url
- docker login -uadmin -pHarbor12345 10.0.21.20:10010
-
-
客户端配置参考(简单):
-
首先,需要配置客户机的不安全访问
ubantu 和 centos 均如下:
vi /etc/docker/daemon.json
#然后写入:
"insecure-registries": ["192.168.8.75"]
***
注意写入正确,不然 systemctl restart docker 会报错
以下是一个正确的例子:
-
客户和本机都不信任 CA 证书,这里需要
解决这个问题,需要将 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
-
-