书接前文,上回书说到搭建本地私有docker镜像仓库的第一种情况,http不带用户名密码认证,需要修改docker的配置,指示可以不安全的访问这个本地仓库,本周咱们继续,
2、https不带用户名密码认证的情况
首先是创建自签名CA的公私钥和证书,
mkdir /root/certs,
cd /root/certs,
openssl genrsa -des3 -out ca.key 1024,
openssl req -new -x509 -key ca.key -out ca.crt -days 365,
然后创建本地私有docker镜像仓库需要用的公私钥和证书,
openssl genrsa -out server.key 2048,
openssl req -new -key server.key -subj "/CN=192.168.137.25" -out server.csr,
echo subjectAltName = IP:192.168.137.25 > extfile.cnf,
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out server.crt -days 5000,
注意上面为了用IP地址做CN,做了一个特殊处理,
启动本地镜像仓库容器实例,
docker run -d -p 5000:5000 --restart=always --privileged=true -v /root/docker/registry:/var/lib/registry -v /root/certs/:/root/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/root/certs/server.crt -e REGISTRY_HTTP_TLS_KEY=/root/certs/server.key registry,
为了能够正常访问,需要把证书拷贝到docker的指定路径,
cd /etc/docker/certs.d,mkdir 192.168.137.25:5000,
cp /root/certs/server.crt /etc/docker/certs.d/192.168.137.25:5000/ca.crt,
剩下的向仓库传镜像和再从这个本地仓库把镜像下载回来的验证过程跟上期一样,就不赘述了。
本文始发于微信公众号(云计算和网络安全技术实践):搭建自己的docker镜像仓库(二)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论