Harbor的安装与配置请参考这里Harbor的安装与配置
Docker默认情况下,push和pull对应的仓库均需要ssl加密,如果我们在内网采用Harbor作为私仓,有两种方案可以解决:
Harbor开启ssl
docker侧修改配置文件,并且需重启docker服务
实际情况是,docker因为承载的服务较多,无法选择重启方案,那么就必须采用第一种方案。这种方案:
harbor侧开启ssl
对应的docker服务侧需要拷贝对应的签名证书
Harbor开启ssl 创建ssl证书 1 2 3 4 5 6 7 8 9 创建一个证书文件夹 mkdir harbor_cert && cd harbor_cert # 创建ca时,根据提示输入 IP地址 openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt openssl req -newkey rsa:4096 -nodes -sha256 -keyout server.key -out server.csr # 把IP地址写入到文件中 echo subjectAltName = IP:xx.xx.xx.xx > extfile.cnf # 生成 cr openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out server.crt
配置Harbor 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 cd harbor2.3/ vim harbor.yml #修改对应的配置项目: # https related config https: # https port for harbor, default is 443 port: 10443 # The path of cert and key files for nginx certificate: /root/harbor_cert/server.crt private_key: /root/harbor_cert/server.key #保存 #使配置生效 ./prepare #重启Harbor docker-compose down -v docker-compose up -v
拷贝对应签名文件到docker服务侧 1 2 3 scp server.crt root@<docker侧主机>:/etc/docker/certs.d/<Harbor主机IP>:<harbor主机端口>/ scp ca.crt root@<docker侧主机>:/etc/docker/certs.d/<Harbor主机IP>:<harbor主机端口>/ scp server.key root@<docker侧主机>:/etc/docker/certs.d/<Harbor主机IP>:<harbor主机端口>/
这里注意的是:如果Harbor侧ssl的监听端口为443,则docker侧的路径为
1 /etc/docker/certs.d/<Harbor主机IP>/
否则为
1 /etc/docker/certs.d/<Harbor主机IP>:<harbor主机端口>/
测试 1 docker login <Harbor主机IP>:<harbor主机端口>
这样,无需重启docker服务,即可实现内网harbor私仓的正常使用。
相关的docker对应的官方文档