Docker私有仓库Registry服务器配置SSL证书以支持HTTPS协议【20220318】

发表于 2022-03-18 10:52:20
阅读 393

介绍

介绍

前面我们学习了搭建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'

home/topic/2022/0318/14/346a8fc9425d35d0fa273279734128ac.png

给centos镜像打标签

docker tag docker.io/centos registry.tongfu.net:5000/centos

提交带标签的 centos 镜像到私有仓库

docker push registry.tongfu.net:5000/centos

home/topic/2022/0318/14/632e0abe8d8c6478d006fc51d6a4e1b4.png

再次测试

curl 'https://registry.tongfu.net:5000/v2/_catalog'

home/topic/2022/0318/14/d3749cf1c19de006af44c8dcf041a285.png

总结

今天福哥带着童鞋们学习了给Docker私有仓库Registry服务器配置SSL证书以支持HTTPS协议访问,新版本的Linux操作系统部署Docker运行环境,访问仓库的时候都是使用HTTPS协议访问的,无论是官方仓库还是私有仓库都是HTTPS协议,所以我们还是要学会配置才行的。