实验环境:
node0: 192.168.0.51 用户主机
node1:192.168.0.3 仓库服务器
安装步骤:
首先修改两台机器的hosts,配置192.168.0.3 到reg.itmuch.com 的映射
echo '192.168.0.3 reg.itmuch.com'>> /etc/hosts
既然使用https,那么我们需要生成证书,本文讲解的是使用openssl自签名证书,当然也可以使用诸如Let’s Encrypt 等工具生成证书,首先在node1机器上生成key:
mkdir -p ~/certs
cd ~/certs
openssl genrsa -out reg.itmuch.com.key 2048
再生成密钥文件:
openssl req -newkey rsa:4096 -nodes -sha256 -keyout reg.itmuch.com.key -x509 -days 365 -out reg.itmuch.com.crt
会有一些信息需要填写:
Country Name (2 letter code) [XX]:CN # 你的国家名称
State or Province Name (full name) []:JS # 省份
Locality Name (eg, city) [Default City]:JS # 所在城市
Organization Name (eg, company) [Default Company Ltd]:USTC # 组织名称
Organizational Unit Name (eg, section) []:USTC # 组织单元名称
Common Name (eg, your name or your server's hostname) []:reg.itmuch.com # 域名,注意与前面的一致
Email Address []:yumingc@mail.ustc.edu.cn # 邮箱
这样自签名证书就制作完成了。
由于是自签名证书,默认是不受Docker信任的,故而需要将证书添加到Docker的根证书中,Docker在Ubuntu中,证书存放路径是/etc/docker/certs.d/域名:
仓库所在的主机端(node1):
mkdir -p /etc/docker/certs.d/reg.itmuch.com
cp ~/certs/reg.itmuch.com.crt /etc/docker/certs.d/reg.itmuch.com/
用户使用端(node0):将生成的证书下载到根证书路径
mkdir -p /etc/docker/certs.d/reg.itmuch.com
scp cym@192.168.0.3:/home/cym/certs/reg.itmuch.com.crt /etc/docker/certs.d/reg.itmuch.com/
重新启动node0 和 node1 的Docker
systemctl restart docker
在node1 上启动私有仓库
首先切换到家目录中,这一步不能少,原因是下面的-v 挂载了证书,如果不切换,将会引用不到证书文件。
cd ~
启动Docker私有仓库(注意:如果直接粘贴运行,请删除掉注释):
docker run -d -p 443:5000 --restart=always --name registry \
-v `pwd`/certs:/certs \ # 将“当前目录/certs”挂载到容器的“/certs”
-v /opt/docker-image:/opt/docker-image \
-e STORAGE_PATH=/opt/docker-image \ # 指定容器内存储镜像的路径
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/reg.itmuch.com.crt \ # 指定证书文件
-e REGISTRY_HTTP_TLS_KEY=/certs/reg.itmuch.com.key \ # 指定key文件
registry:2
其中,之所以挂载/opt/docker-image目录,是为了防止私有仓库容器被删除,私有仓库中的镜像也会丢失。
在node0 上测试,将镜像push到私服
docker pull ubuntu
docker tag ubuntu reg.itmuch.com/ubuntu # 为本地镜像打标签
docker push reg.itmuch.com/ubuntu # 将镜像push到私服
从私服中下载镜像:
docker pull reg.itmuch.com/ubuntu
参考文档:
https://www.jianshu.com/p/fc544e27b507
https://blog.csdn.net/boling_cavalry/article/details/78818462