云原生必备工具!手把手教你搭建Harbor私有仓库(下)

上文《云原生必备工具!手把手教你搭建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"}
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值