关键词:
操作系统及相关软件版本说明:
测试服务器IP地址:
IP 1 = 192.168.85.158,简称A仓库
IP 2 = 192.168.85.157,简称B仓库
一、Harbor项目介绍
1、Harbor来源
VMware公司最近开源了企业级Registry项目Harbor,其的目标是帮助用户迅速搭建一个企业级的Docker registry 服务。
它以Docker公司开源的registry 为基础,提供了管理UI, 基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文。
2、架构介绍
1) 主要组件
Harbor在架构上主要由五个组件构成:
◆Proxy:Harbor的registry, UI, token等服务,通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务。
◆Registry: 负责储存Docker镜像,并处理docker push/pull 命令。由于我们要对用户进行访问控制,即不同用户对Docker image有不同的读写权限,Registry会指向一个token服务,强制用户的每次docker pull/push请求都要携带一个合法的token, Registry会通过公钥对token 进行解密验证。
◆Core services: 这是Harbor的核心功能,主要提供以下服务:
◇UI:提供图形化界面,帮助用户管理registry上的镜像(image), 并对用户进行授权。
◇webhook:为了及时获取registry 上image状态变化的情况, 在Registry上配置webhook,把状态变化传递给UI模块。
◇token 服务:负责根据用户权限给每个docker push/pull命令签发token. Docker 客户端向Registry服务发起的请求,如果不包含token,会被重定向到这里,获得token后再重新向Registry进行请求。
◆Database:为core services提供数据库服务,负责储存用户权限、审计日志、Docker image分组信息等数据。
◆Log collector:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。
各个组件之间的关系如下图所示:
2) 实现
Harbor的每个组件都是以Docker容器的形式构建的,所以使用Docker Compose来对它进行部署。
用于部署Harbor的Docker Compose 模板位于 /Deployer/docker-compose.yml. 打开这个模板文件,会发现Harbor由5个容器组成:
◆proxy: 由Nginx 服务器构成的反向代理。
◆registry:由Docker官方的开源registry 镜像构成的容器实例。
◆ui: 即架构中的core services, 构成此容器的代码是Harbor项目的主体。
◆mysql: 由官方MySql镜像构成的数据库容器。
◆log: 运行着rsyslogd的容器,通过log-driver的形式收集其他容器的日志。
这几个容器通过Docker link的形式连接在一起,这样,在容器之间可以通过容器名字互相访问。对终端用户而言,只需要暴露proxy (即Nginx)的服务端口。
1、安装docker-compose方法一
$ sudo –i
# curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# docker-compose --version docker-compose version: 1.8.1
这样便安装好了docker-compose。
三、安装2台Harbor
以下操作,都是2台服务器同时操作
实现原理图:
1、下载harbor安装包
在线包:
https://github.com/vmware/harbor/releases/download/0.4.5/harbor-online-installer-0.4.5.tgz
离线包:
https://github.com/vmware/harbor/releases/download/0.4.5/harbor-offline-installer-0.4.5.tgz
2、解压、配置、安装harbor
在安装harbor之前,需要修改/data/harbor/harbor.cfg中的配置参数,然后执行install.sh脚本来生成harbor所有容器的配置文件及启动harbor
在文件harbor.cfg中,需要配置的参数如下:
hostname:私有仓库的主机名,可以是IP地址,也可以是域名。这里是配置的域名
hostname = 192.168.85.157
ui_url_protocol:用户访问私仓时使用的协议,默认时http,也可配置成https;
ui_url_protocol = http
邮箱账号配置
#Email account settings for sending out password resetting emails.
email_server = smtp.xxxxx.com
email_server_port = 25
email_username = [email protected]
email_password = xxxxf04
email_from = channel <[email protected]>
email_ssl = false
harbor_admin_password:harbor的管理员账户密码,默认密码是: Harbor12345 用户名是:admin
其他配置参数可以参考:
https://github.com/vmware/harbor/blob/master/docs/installation_guide.md
3、安装启动harbor
# ./install.sh
用docker-compose ps查看下,所有容器是否都启动
四、创建docker harbor主主复制
1、在A仓库创建镜像同步策略
http://192.168.85.158
使用用户名/密码: admin/ Harbor12345 登陆
登陆后,新建项目hlg_web
点击新增策略,填写相关对端harbor信息,最后点击测试连接
返回测试连接目标成功,表示创建成功
点击完成,即可看到
2、在A仓库中上传镜像到同步项目中并验证
以下在A仓库机器执行
# docker login -u admin -p Harbor12345 192.168.85.158
Login Succeeded
# docker tag c8c29d842c09 192.168.85.158/hlg_web/nginx:1.9
注:c8c29d842c09为nginx的images id
# docker push 192.168.85.158/hlg_web/nginx:1.9
然后分别在A仓库、B仓库页面,进行查看验证
注:在push上传时,必须要有对应的项目名称,才能push成功
然后登陆B仓库,查看配置的复制策略,是否同步过来
从主面板看,日志也给同步过来了
3、在B仓库中上传镜像验证同步
按照上面的方法,反过来,在192.168.85.157上创建策略
项目—项目名称—点开
点击“复制”—“新增策略”
然后我们在B仓库上上传镜像到hlg_web中
# docker tag 942fd5fd357e 192.168.85.157/hlg_web/swarm
# docker push 192.168.85.157/hlg_web/swarm
登陆B仓库管理系统
日志显示,已经上传成功。然后在到对应的项目中查看
然后在到A仓库中查看镜像是否一样被同步过来
1、非https登陆失败
# docker login -u admin -p Pty_registry123 172.16.73.50
Error response from daemon: Get https://172.16.73.50/v1/users/: dial tcp 172.16.73.50:443: getsockopt: connection refused
编辑 /etc/default/docker 增加如下内容
DOCKER_OPTS="$DOCKER_OPTS --insecure-registry 172.16.73.50"
然后停止docker-compose执行
docker-compose stop
重启docker执行
service docker restart
最后启动docker-compose
docker-compose start
以上是利用harbor,搭建的docker私有仓库主主同步方案。
本文出自 “我的天空” 博客,请务必保留此出处http://sky66.blog.51cto.com/2439074/1934011
私有仓库harbor的搭建(代码片段)
私有仓库Harbor的搭建一、Harbor简介虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的DockerRegistry管理项目,相比docker官方拥有... 查看详情
docker学习记录-构建私有镜像仓库-harbor(代码片段)
Docker学习记录-构建私有镜像仓库-harbor一、前置条件安装docker安装docker-compose注意:harbor对docker要求版本比较高,请安装最新版本 二、下载harbor安装包download 中 harbor-offline-installer对应的版本。 三、上传到服务... 查看详情
docker企业级私有仓库——harbor介绍和部署(代码片段)
Docker企业级私有仓库——Harbor介绍和部署前言?docker容器应用及开发和运行离不开可靠的镜像管理,在前面的文章我们提到了我们在拉取镜像的时候使用的是docker官方提供的公共镜像仓库,但是无论从安全还是效率等其他方面考... 查看详情
docker-harbor私有仓库的部署与管理
...还原生支持中文•Harbor的每个组件都是以Docker容器的形式构建的,使用docker-compose来对它进行部署。用于部署Harbor的docker-compose模板位于harbor/docker-compose.yml2、Harbor的特性1.基于角色控制:用户和仓库都是基于项目进行组织的,而用... 查看详情
50-docker-分布式仓库harbor高可用
Harbor介绍基于角色的访问控制:用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限镜像复制:镜像可在多个Registry实例中复制(同步)。尤其适合于负载均衡,... 查看详情
使用harbor构建docker私有仓库(代码片段)
...#xff08;1)所需参数(2)可选参数二、使用Harbor构建docker私有仓库1、部署Harbor服务(1)下载Harbor安装程序(2)配置Harbor参数文件(3)启动Harbor(4)查看Harbor启动镜像和容器(5)... 查看详情
harbor构建docker私有仓库!!!(代码片段)
Harbor构建Docker私有仓库一.Harbor的优势二..Harbor的核心组件1.Proxy2.Registry3.coreservices4.Databases5.Logcollector三.关于Harbor.cfg配置文件中有两类参数1.所需参数2.可选参数四.部署Harbor1.下载Harbor安装程序,上传解压2.配置Harbor参数文件3.... 查看详情
harbor构建docker私有仓库!!!(代码片段)
Harbor构建Docker私有仓库一.Harbor的优势二..Harbor的核心组件1.Proxy2.Registry3.coreservices4.Databases5.Logcollector三.关于Harbor.cfg配置文件中有两类参数1.所需参数2.可选参数四.部署Harbor1.下载Harbor安装程序,上传解压2.配置Harbor参数文件3.... 查看详情
docker部署registry私有仓库+harbor私有仓库(代码片段)
...若要搭建Registry私有仓库,最好结合:Docker镜像的创建与构建私有库,对比其不一样的地 查看详情
docker私有仓库之---harbor仓库的搭建及使用(代码片段)
一、什么是harborHarbor是VMware公司开源的企业级DockerRegistry项目,其目标是帮助用户迅速搭建一个企业级的DockerRegistry服务。Harbor以Docker公司开源的Registry为基础,提供了图形管理UI、基于角色的访问控制(RoleBasedAccessControl)、... 查看详情
docker——harbor私有仓库部署与管理(代码片段)
...Harbor的优势2、Harbor知识点3、Docker私有仓库架构二、Harbor构建Docker私有仓库1、环境配置2、案例需求3、部署docker-compose服务4、部署harbor服务5、启动harbor①访问②添加项目并填写项目名称③通过127.0.0.1来登陆和推送镜像④维护管理... 查看详情
docker私有仓库harbor(代码片段)
Harbor是VMware公司开源的企业级DockerRegistry项目一、Harbor的优势1、基于角色控制:有管理员与普通用户,可赋权普通用户,比如只能上传和下载,可根据项目来进行操作和管理2、基于镜像的复制策略:也与权限相关,... 查看详情
docker私有仓库(代码片段)
Harbor介绍部署Harbor所依赖的DockerCompose服务部署Harbor服务Harbor日常操作管理Harbor管理生命周期Harbor是VMware公司开源的企业级DockerRegistry项目Harbor的优势基于角色控制基于镜像的复制策略支持LDAP/AD图像删除和垃圾收集图形UI审计RESTfu... 查看详情
harbor构建docker私有仓库(代码片段)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Harbor的优势2、Harbor的构成3、关于Harbor.cfg配置文件中有两类参数3.1、所需参数3.2、可选参数二、部署Harbor服务1、下载Harbor安... 查看详情
harbor构建docker私有仓库(代码片段)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Harbor的优势2、Harbor的构成3、关于Harbor.cfg配置文件中有两类参数3.1、所需参数3.2、可选参数二、部署Harbor服务1、下载Harbor安... 查看详情
docker搭建私有仓库之harbor(代码片段)
HarborHarbor是构建企业级私有docker镜像的仓库的开源解决方案,它是DockerRegistry的更高级封装,它除了提供友好的WebUI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm通过chart方式下载... 查看详情
docker私有仓库部署和管理(代码片段)
Docker私有仓库部署和管理本章结构:Harbor介绍部署Harbor所依赖的DockerCompose服务部署Harbor服务Harbor日常操作管理Harbor管理生命周期Harbor介绍Harbor是VMware公司开源的企业级DockerRegistry项目Harbor的优势基于角色控制基于镜像的复制策略... 查看详情
docker-harbor私有仓库部署与管理(代码片段)
Docker-harbor私有仓库部署管理一.Harbor概述1.什么是Harbor2.Harbor的特性3.Harbor的构成二.Harbor部署一.Harbor概述1.什么是Harbor•Harbor是VMware公司开源的企业级DockerRegistry项目,其目标是帮助用户迅速搭建一个企业级的DockerRegistry服务•... 查看详情