简介:
私有镜像仓库可以方便企业,或个人开发者共享内部镜像而不会泄漏私有代码,而且可以加速镜像的拉取。能更加方便得集成到容器化的 CI/CD 中去。也可建立自己的公共镜像仓库。
优势:
Docker Registry的优点如下:
(1)Docker Registry的最大优点就是简单,只需要运行一个容器就能集中管理一个集群范围内的镜像,其他机器就能从该镜像仓库下载镜像了。
(2)在安全性方面,Docker Registry支持TLS和基于签名的身份验证。
(3)Docker Registry也提供了Restful API,以提供外部系统调用和管理镜像库中的镜像

部署架构图:
企业级docker-registry原生镜像仓库高可用部署-LMLPHP
环境准备:
企业级docker-registry原生镜像仓库高可用部署-LMLPHP

企业级docker-registry原生镜像仓库高可用部署-LMLPHP
开始部署:
1.基础环境配置(两台节点都要配置)

(1)配置主机名

#hostnamectl set-hostname registry01.example.com
#hostnamectl set-hostname registry02.example.com

(2)配置节点hosts

#cat /etc/hosts
1.1.1.130 registry.example.com
1.1.1.129 registry02.example.com
1.1.1.128 registry01.example.com

(3)关闭防火墙

#systemctl stop firewalld
#systemctl disable firewalld

企业级docker-registry原生镜像仓库高可用部署-LMLPHP
(4)开启IPtables

#yum install -y iptables-services
#systemctl start iptables
#systemctl enable iptables

企业级docker-registry原生镜像仓库高可用部署-LMLPHP
(5)关闭selinux

#vi /etc/selinux/config
#setenforce 0
#getenforce

企业级docker-registry原生镜像仓库高可用部署-LMLPHP
(6)配置yum源
企业级docker-registry原生镜像仓库高可用部署-LMLPHP
(7)配置节点时间同步服务

#yum install –y chronyd
#vi /etc/chrony.conf    //添加时间同步服务器地址
#systemctl restart chronyd
#timedatectl

企业级docker-registry原生镜像仓库高可用部署-LMLPHP

2.存储配置(两台节点都要配置)
(1)查看本地磁盘sdb
#lsblk
(2)设置LVM分区

#pvcreate /dev/sdb
#vgcreate docker_vg /dev/sdb
#lvcreate -l +100%FREE -n docker_lv docker_vg

企业级docker-registry原生镜像仓库高可用部署-LMLPHP

# mkfs.xfs /dev/docker_vg/docker_lv
企业级docker-registry原生镜像仓库高可用部署-LMLPHP
(3)为docker挂载本地目录

#blkid
#vi /etc/fstab

企业级docker-registry原生镜像仓库高可用部署-LMLPHP
(4)为镜像仓库目录挂载NFS存储

#mkdir –p  /data/registry
#vi /etc/fstab
1.1.1.214:/sdsfs/registrynfs/ /data nfs defaults 0 0

企业级docker-registry原生镜像仓库高可用部署-LMLPHP
3.服务配置(两台节点都要配置)
(1)节点安装docker V1.13.1 并设置开机自动启动

#yum install docker –y
#systemctl enable docker

(2)节点安装docker-distribution并设置开机自动启动

#yum install docker-distribution –y
#systemctl enable docker-distribution

(3)节点设置自动挂载并启动服务

# mount –a
#df –h

企业级docker-registry原生镜像仓库高可用部署-LMLPHP

# systemctl start docker
# systemctl start docker-distribution

(4)修改docker-distribution 的配置文件并重启
#vi /etc/docker-distribution/registry/config.yml
企业级docker-registry原生镜像仓库高可用部署-LMLPHP

# systemctl restart docker-distribution

(5)节点设置非安全镜像仓库并上传registry-ui 镜像
#vi /etc/sysconfig/docker

#systemctl restart docker
下载registry-ui 的镜像 (docker hub地址 https://hub.docker.com/r/jc21/registry-ui )
docker pull jc21/registry-ui:2.0.2
企业级docker-registry原生镜像仓库高可用部署-LMLPHP

#docker tag jc21/registry-ui:2.0.2 registry.example.com/registry/registry-ui:2.0.2
#docker images

企业级docker-registry原生镜像仓库高可用部署-LMLPHP
(6)节点放行iptables 规则,允许端口被访问
#vi /etc/sysconfig/iptables
企业级docker-registry原生镜像仓库高可用部署-LMLPHP

-A INPUT -p tcp --dport 5000 -j ACCEPT
-A OUTPUT -p tcp --sport 5000 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp --sport 80 -j ACCEPT

!注意顺序
#systemctl restart iptables

(7)节点安装registry-ui 并检查
# docker run -d -p 80:80 --restart=always -e REGISTRY_HOST=registry.example.com -e REGISTRY_SSL=false -e REGISTRY_DOMAIN=registry.example.com -e REGISTRY_STORAGE_DELETE_ENABLED=true --name registry-ui registry.example.com/registry/registry-ui:2.0.2

(8)浏览器访问registry-ui (访问地址:http://registry.example.com:8080)
企业级docker-registry原生镜像仓库高可用部署-LMLPHP

11-03 18:26