简介:

私有镜像仓库可以方便企业,或个人开发者共享内部镜像而不会泄漏私有代码,而且可以加速镜像的拉取。能更加方便得集成到容器化的 CI/CD 中去。也可建立自己的公共镜像仓库。

优势:

Docker Registry的优点如下:

(1)Docker Registry的最大优点就是简单,只需要运行一个容器就能集中管理一个集群范围内的镜像,其他机器就能从该镜像仓库下载镜像了。

(2)在安全性方面,Docker Registry支持TLS和基于签名的身份验证。

(3)Docker Registry也提供了Restful API,以提供外部系统调用和管理镜像库中的镜像

部署架构图:



环境准备:



开始部署:

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



(4) 开启IPtables

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



(5) 关闭selinux

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



(6) 配置yum源



(7) 配置节点时间同步服务

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

2. 存储配置(两台节点都要配置)

(1) 查看本地磁盘sdb

#lsblk

(2) 设置LVM分区

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

# mkfs.xfs /dev/docker_vg/docker_lv



(3) 为docker挂载本地目录

#blkid
#vi /etc/fstab



(4) 为镜像仓库目录挂载NFS存储

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



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

# systemctl start docker
# systemctl start docker-distribution

(4) 修改docker-distribution 的配置文件并重启

#vi /etc/docker-distribution/registry/config.yml

# 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 tag jc21/registry-ui:2.0.2 registry.example.com/registry/registry-ui:2.0.2
#docker images



(6) 节点放行iptables 规则,允许端口被访问

#vi /etc/sysconfig/iptables

-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原生镜像仓库高可用部署的更多相关文章

  1. 搭建docker registry私有镜像仓库

    搭建docker registry私有镜像仓库 一.安装docker-distribution yum install -y docker-distribution 安装完成后,启动服务: syste ...

  2. Docker容器管理平台Rancher高可用部署——看这篇就够了

    记得刚接触Rancher时,看了官方文档云里雾里,跟着官网文档部署了高可用Rancher,发现不管怎么折腾都无法部署成功(相信已尝试的朋友也有类似的感觉),今天腾出空来写个总结,给看到的朋友留个参考( ...

  3. 6.docker的私用镜像仓库registry

    docker方式启动镜像仓库 / # cat /etc/docker/registry/config.yml version: 0.1 log: fields: service: registry s ...

  4. 手动搭建Docker本地私有镜像仓库

    实验环境:两个Centos7虚拟机,一个是Server,用作客户端,另一个是Registry,用作Docker私有镜像仓库. 基础配置 查看一下两台虚拟机的IP地址 Server的IP地址是192.1 ...

  5. Docker Registry 管理镜像

    一.使用Docker Registry管理镜像 a.登陆docker hub  https://www.docker.com/products/docker-hub b.创建仓库 c.推送镜像   打 ...

  6. 利用docker实现私有镜像仓库

    利用docker实现私有镜像仓库 在linux服务器上安装了docker过后,可以拉取docker镜像仓库: docker pull registry 再执行命令让镜像run起来: docker ru ...

  7. vivo 基于原生 RabbitMQ 的高可用架构实践

    一.背景说明 vivo 在 2016 年引入 RabbitMQ,基于开源 RabbitMQ 进行扩展,向业务提供消息中间件服务. 2016~2018年,所有业务均使用一个集群,随着业务规模的增长,集群 ...

  8. Linux下安装docker,更改镜像仓库地址,并部署springboot应用

    今天做不成的事,明天也不会做好. 各位同学大家好,随着docker的快速发展,越来越多的人开始使用,一方面随着容器化这个趋势越来越火,docker成为了其中的佼佼者:二来容器化确实降低了运维的门槛,让 ...

  9. kubernetes 1.15.1 高可用部署 -- 从零开始

    这是一本书!!! 一本写我在容器生态圈的所学!!! 重点先知: 1. centos 7.6安装优化 2. k8s 1.15.1 高可用部署 3. 网络插件calico 4. dashboard 插件 ...

随机推荐

  1. python+pymysql访问mysql数据库

    今天跟大家分享两种场景的python连接MySQL方法: 场景一:连接远程MySQL 首先,安装pymysql:在命令行执行pip install pymysql指令. 然后,导入pymysql: i ...

  2. Spring Boot 第三弹,一文带你了解日志如何配置?

    前言 日志通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节.但是,这丝毫不影响它在任何一个系统中的重要的地位. 今天就来介绍一下Spring Boot中的日志如何配置. Spr ...

  3. Centos-当前登录用户信息- w who

    w who 显示当前登录系统的用户,但w显示的更为详细 who 相关参数 # 默认输出 用户名.登录终端.登录时间 -a 列出所有信息 -b    系统最近启动日期 -m   当前终端信息,相当于 w ...

  4. 【题解】 [GZOI2017]小z玩游戏

    题目戳我 \(\text{Solution:}\) 考虑建图.操作可以看作对\(1\)进行的操作,于是有以下运行过程: \(1\to w[i]\to e[i]\to...\) 考虑倍数,一个数可以走到 ...

  5. helm包管理工具

    K8S正常部署应用是如下方式 kubectl create deployment web --image=nginx --dru-run=client -o yaml > web.yaml ku ...

  6. python实现单链表及链表常用功能

    单链表及增删实现 单链表高级功能实现:反序,找中间结点,检测环等 参考: https://github.com/wangzheng0822/algo

  7. shell-的特殊变量-难点理论

    一:shell的特殊变量-难点理论  1. $*和$@的区别例子     $* 将所有的命令行所有参数视为单个字符串,等同于"$1$2$3"     $@ 将命令行每个参数视为单独 ...

  8. 使用react Context+useReducer替代redux

    首先明确一点,Redux 是一个有用的架构,但不是非用不可.事实上,大多数情况,你可以不用它,只用 React 就够了. 曾经有人说过这样一句话. "如果你不知道是否需要 Redux,那就是 ...

  9. JAVA Schedule的Cron表达式

    spring中用到的定时任务,一般用到的有Timer()和Schedule Cron表达式一般是程序的定时任务中所要起的..我们用的springboot中的@Schedule中,启动类中添加enabl ...

  10. linux-设置hostname

    设置linux root后面的名字