docker搭建公网IP地址的仓库,支持https
server端:系统centos6.X,IP 48.96.162.215
server端配置:
1.制作证书,生成证书
在ROOT下执行,把证书保存在/root/certs目录下
openssl req -newkey rsa:2048 -nodes -sha256 -keyout /root/certs/domain.key -x509 -days 365 -out /root/certs/domain.crt
我这里使用的这个域名,下面会用到
2.拷贝证书到docker访问的路径
3.让服务器自身信任证书
将domain.crt内容放入系统的CA bundle文件当中,使操作系统信任我们的自签名证书。
4.启动docker registry(复制命令,注意先放到记事本里格式化下)
docker run -d -p 5000:5000 --privileged=true -v /opt/registry:/tmp/registry -v ~/certs/:/root/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/root/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/root/certs/domain.key registry
5.测试(或者申请https的证书)
需要sylalak.com 指向我们的IP地址48.96.162.215
二.使用IP的方式来访问仓库
6.修改openssl.conf支持IP地址的方式,访问https,增加一个字段subjectAltName
[ v3_ca ]
subjectAltName= IP:48.96.162.215
7.生成证书,步骤同1,注意Common Name 填IP地址 48.96.162.215
8.拷贝证书,步骤同2,注意使用的是IP地址不是域名
9.让服务器信任证书,步骤同3.
10.重启docker
11.重新启动registry,步骤同4.
12.验证下
三.在别的机器上上传文件
13.如果要在另一台机器上访问,需要把CERTS文件里的crt文件 COPY过去,同样放在/etc/docker/certs.d下面,建一个目录:/48.96.162.215:5000,然后 cp domain.crt/etc/docker/certs.d/48.96.162.215:5000/ca.crt
14.给存在或者我们生成的镜像文件打tag
15.push 这个镜像文件到仓库