搭建私有镜像仓库 docker registry

实验环境:

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的根证书中,DockerUbuntu中,证书存放路径是/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

http://book.itmuch.com/3%20%E4%BD%BF%E7%94%A8Docker%E6%9E%84%E5%BB%BA%E5%BE%AE%E6%9C%8D%E5%8A%A1/3.5%20Docker%E7%A7%81%E6%9C%89%E4%BB%93%E5%BA%93%E7%9A%84%E6%90%AD%E5%BB%BA%E4%B8%8E%E4%BD%BF%E7%94%A8.html

https://blog.csdn.net/boling_cavalry/article/details/78818462

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值