云原生必备工具!手把手教你搭建Harbor私有仓库(下)
2023-12-28 15:19:01
上文《云原生必备工具!手把手教你搭建Harbor私有仓库(上)》 中搭建的Harbor为了能够快速在本地搭建起来,因此去掉了443端口。
本文中将继续介绍,如何开启ssl验证以及从其他节点拉取私有镜像仓库中的镜像。
Harbor 开启ssl
生成ca证书
mkdir -p /data/cert
cd /data/cert/
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt -subj "/C=CN/L=zhejiang/O=lisea/CN=harbor-registry"
openssl req -newkey rsa:4096 -nodes -sha256 -keyout (IP/域名).key -out server.csr -subj "/C=CN/L=zhejiang/O=lisea/CN=(IP/域名)"
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out (IP/域名).crt
将生成后的ca证书路径复制下来,修改harbor.yml中hostname以及ca证书地址,如下所示:
此处,为了公网访问,我使用的是阿里云主机进行搭建。
重新执行./install.sh。
此时访问harbor,可以看到页面变成了https,但是显示不安全,这个可以不需要去理会。
本地再次登陆
docker login 47.xx.xx.171 -u admin -p Harbor12345
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
此时,我们需要对镜像重新进行打tag操作。
docker tag be9874d47f6e 47.xx.xx.71/library/goweb
打包成功后,docker push
docker push 47.xx.xx.171/library/goweb
Using default tag: latest
The push refers to repository [47.xx.xx.171/library/goweb]
5f70bf18a086: Layer already exists
6307f987eaa7: Layer already exists
e6a710dfabc3: Layer already exists
5af4f8f59b76: Layer already exists
latest: digest: sha256:7988303fbdc6274cb19f9b1a29277870c6c85c7e1a9770bfae8cef8fb746fa4a size: 1152
其他节点拉取镜像
此时,切换到自己的电脑
docker pull localhost/library/goweb@sha256:7988303fbdc6274cb19f9b1a29277870c6c85c7e1a9770bfae8cef8fb746fa4a
-----
Error response from daemon: Get "http://localhost/v2/": dial tcp [::1]:80: connect: connection refused
出现报错,可能原因是因为本地电脑没有进行登陆
docker login 47.xx.xx.171 -u admin -p Harbor12345
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
再次执行拉取操作
其他问题
问题: docker: Error response from daemon: Get “https://xx.xx.xx.xx/qabc/test-2048/v2/”: http: server gave HTTP response to HTTPS client.
See ‘docker run --help’.
解决: 可以在docker engine 中加入"insecure-registries": ["47.xx.xx.171"]
拉取后执行docker run -d -p 8081:8081 be1c2814bb33
即可启动
curl http://localhost:8081/hello
{"message":"hello"}
文章来源:https://blog.csdn.net/efheoihfe/article/details/135267604
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!