介绍
介绍
前面我们学习了搭建Docker私有仓库Registry服务器的方法,不过Registry服务器默认情况下是以HTTPS协议访问的,使用HTTPS协议就需要设置SSL证书,今天福哥就带着大家学习如何配置Docker私有仓库Registry服务器SSL证书以支持HTTPS协议的访问。
SSL证书
创建SSL证书
免费证书:到度娘问一下“哪里有免费的ssl证书啊?”会有很多答案。
收费证书:各种云主机提供商都有SSL证书在售。
自制证书:可以通过Linux的OpenSSL工具创建SSL证书,不过这种证书无法正常使用。
重建私有仓库
创建映射目录
mkdir /data/docker.registry mkdir -p /data/docker.registry/etc/cert.d mkdir -p /data/docker.registry/var/lib/registry
复制SSL证书
福哥是去腾讯云申请了一套SSL证书,域名是registry.tongfu.net,文件有两个registry.crt和registry.key。大家如果有正式的SSL证书可以自己替换。
复制registry.crt文件和registry.key文件到/data/docker.registry/etc/cert.d下面。
cp registry.crt /data/docker.registry/etc/cert.d/registry.crt cp registry.key /data/docker.registry/etc/cert.d/registry.key
删除私有仓库容器
先把刚刚创建的私有仓库的容器删除掉。
docker rm -f registry
启动私有仓库容器
现在重新创建私有仓库的容器,配置SSL证书参数。
docker run -tid \ --name registry \ -h registry \ -p 5000:5000 \ --memory 512m \ --memory-swap -1 \ --restart always \ -v /data/docker.registry/etc/cert.d:/etc/cert.d \ -v /data/docker.registry/var/lib/registry:/var/lib/registry \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/etc/cert.d/registry.crt \ -e REGISTRY_HTTP_TLS_KEY=/etc/cert.d/registry.key \ docker.io/registry
添加本地DNS
在/etc/hosts里面添加域名解析。
127.0.0.1 registry.tongfu.net
测试
curl 'https://registry.tongfu.net:5000/v2/_catalog'
给centos镜像打标签
docker tag docker.io/centos registry.tongfu.net:5000/centos
提交带标签的 centos 镜像到私有仓库
docker push registry.tongfu.net:5000/centos
再次测试
curl 'https://registry.tongfu.net:5000/v2/_catalog'
总结
今天福哥带着童鞋们学习了给Docker私有仓库Registry服务器配置SSL证书以支持HTTPS协议访问,新版本的Linux操作系统部署Docker运行环境,访问仓库的时候都是使用HTTPS协议访问的,无论是官方仓库还是私有仓库都是HTTPS协议,所以我们还是要学会配置才行的。