2-4-3-Docker私有仓库Registry服务器配置SSL证书以支持HTTPS协议
1. 介绍
前面我们学习了搭建Docker私有仓库Registry服务器的方法,不过Registry服务器默认情况下是以HTTPS协议访问的,使用HTTPS协议就需要设置SSL证书,今天福哥就带着大家学习如何配置Docker私有仓库Registry服务器SSL证书以支持HTTPS协议的访问。
2. SSL证书
2.1 创建SSL证书
免费证书:到度娘问一下“哪里有免费的ssl证书啊?”会有很多答案。
收费证书:各种云主机提供商都有SSL证书在售。
自制证书:可以通过Linux的OpenSSL工具创建SSL证书,不过这种证书无法正常使用。
3. 重建私有仓库
3.1 创建映射目录
mkdir /data/docker.registrymkdir -p /data/docker.registry/etc/cert.d
mkdir -p /data/docker.registry/var/lib/registry3.2 复制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.key3.3 删除私有仓库容器
先把刚刚创建的私有仓库的容器删除掉。
docker rm -f registry3.4 启动私有仓库容器
现在重新创建私有仓库的容器,配置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/registry3.5 添加本地DNS
在/etc/hosts里面添加域名解析。
127.0.0.1 registry.tongfu.net3.6 测试
curl 'https://registry.tongfu.net:5000/v2/_catalog'
3.7 给centos镜像打标签
docker tag docker.io/centos registry.tongfu.net:5000/centos3.8 提交带标签的 centos 镜像到私有仓库
docker push registry.tongfu.net:5000/centos
3.9 再次测试
curl 'https://registry.tongfu.net:5000/v2/_catalog'
4. 总结
今天福哥带着童鞋们学习了给Docker私有仓库Registry服务器配置SSL证书以支持HTTPS协议访问,新版本的Linux操作系统部署Docker运行环境,访问仓库的时候都是使用HTTPS协议访问的,无论是官方仓库还是私有仓库都是HTTPS协议,所以我们还是要学会配置才行的。
参考链接
Docker私有仓库Registry服务器配置SSL证书以支持HTTPS协议 (qq.com)