docker-harbor私有仓库

1、仓库的作用:保存镜像

2、私有仓库:自定义用户的形式登录仓库,拉取或者上传镜像(内部管理的用户)

3、harbor:VMware公司开发的、开源的、企业级的docker registry项目

(1)目的:帮助用户快速的搭建一个企业级的docker仓库的服务
(2)支持中文

4、docker-harbor的特性

(1)基于角色进行控制,用户和仓库都是基于项目进行的,用户在每个项目中可以拥有不同的权限
(2)基于镜像在不同的harbor实例之间进行复制
(3)harbor自带一个数据库(AD/LDAP,类似于数据库中的表,用于对已存在的用户进行认证和管理)
(4)镜像删除和垃圾回收,仓库中的镜像可以被删除(基于权限控制),也可以回收镜像占用的空间
(5)图形化界面,用户可以直接通过浏览器来对镜像仓库进行管理
(6)审计管理,所有对镜像仓库的操作都可以被记录溯源
(7)支持API操作
①API是程序接口,端口是基于主机和主机之间的通信,API是应用和应用之间的接口,管理员可以基于API调用接口和更多的其他程序进行集成

5、harbor的组件

(1)proxy:安装完了harbor之后,会自动生成一个nginx的容器,自动对外映射,80端口(nginx作为前端代理)。在harbor当中registry(仓库)、UI、TOKEN都在nginx的反向代理后面,通过nginx的代理可以把请求转发到后端不同的应用
(2)Registry:负责存储镜像,docker pull/push的命令都由其负责,要对用户进行访问控制,不同的用户对docker镜像有不同的读写权限,Registry每次都会指向一个不同的TOKEN(公钥对),强制用户每次的pull、push都必须带一个合法的TOKEN,Registry会通过公钥对进行解密验证,身份合法才能指定操作
(3)CORE SERVICES:harbor的核心功能,提供三个服务:
①UI:提供图形化界面
②webhook:仓库上所有镜像的变化(增删改),都会传送给webhook,以显示在UI界面上
③TOKEN:签发每一次push、pull的公钥对,用来和仓库之间进行权限认证
(4)database(harbor-db),为核心组件 core services提供数据库存储服务,包括用户权限、审计日志、docker镜像的分组和项目信息
(5)job service:主要用于镜像的复制,本地镜像可以同步到远程harbor上
(6)log collector(harbor-log):统一日志收集工具

6、harbor都是基于docker容器化部署的,docker-compose一键编排、安装

7、实验架构

docker1

安装仓库:20.0.0.61(docker-ce、har-bor、docker-compose)

docker2

客户端:20.0.0.62(docker-ce、har-bor、docker-compose)

docker3

安装仓库(实现远程同步):20.0.0.63(docker-ce、har-bor、docker-compose)

8、实验过程

(1)部署docker-compose和harbor

(2)修改配置文件

docker-harbor私有仓库_第1张图片

docker-harbor私有仓库_第2张图片

(3)安装

①./prepare:编译环境

docker-harbor私有仓库_第3张图片

②https:docker-harbor默认的通信协议是https,加密通信协议
③注释https:

docker-harbor私有仓库_第4张图片

④./install.sh

docker-harbor私有仓库_第5张图片

⑤安装若报错,systemctl restart docker

docker-harbor私有仓库_第6张图片

(4)浏览器配置:20.0.0.61

docker-harbor私有仓库_第7张图片

docker-harbor私有仓库_第8张图片

(5)上传镜像
①拉取镜像

docker-harbor私有仓库_第9张图片

docker-harbor私有仓库_第10张图片

②登录仓库、上传镜像
docker login -u admin -p 123456 http://127.0.0.1
docker push 127.0.0.1/library/nginx:hyde1

docker-harbor私有仓库_第11张图片

docker-harbor私有仓库_第12张图片

docker-harbor私有仓库_第13张图片

6创建私有仓库

docker-harbor私有仓库_第14张图片

docker-harbor私有仓库_第15张图片

docker-harbor私有仓库_第16张图片

①创建用户

docker-harbor私有仓库_第17张图片

docker-harbor私有仓库_第18张图片

docker-harbor私有仓库_第19张图片

②上传镜像

登录仓库:docker login -u yyy -p Abc123456 http://127.0.0.1
修改标签:docker tag nginx:1.22.0 127.0.0.1/haide/nginx:hyde2

docker-harbor私有仓库_第20张图片

上传镜像:docker push 127.0.0.1/haide/nginx:hyde2

docker-harbor私有仓库_第21张图片

权限管理、角色控制:

角色的作用

访客

只能看,只有读权限

开发者

有读写权限,但是没有删除的权限

维护人员

有读写权限、修改其他配置项的权限

项目管理员

对该项目拥有所有权限

docker-harbor私有仓库_第22张图片

docker-harbor私有仓库_第23张图片

docker-harbor私有仓库_第24张图片

docker-harbor私有仓库_第25张图片

docker-harbor私有仓库_第26张图片

(7)远程配置(docker2远程登录docker1,上传镜像)

①修改docker-services的配置文件

②拉取镜像:docker pull logstash

docker-harbor私有仓库_第27张图片

③远程登录docker1的私有仓库:docker login -u yyy -p Abc123456 http://20.0.0.61

docker-harbor私有仓库_第28张图片

④上传镜像:docker push 20.0.0.61/haide/logstash:hyde3
修改镜像标签:docker tag logstash:latest 20.0.0.61/haide/logstash:hyde3

docker-harbor私有仓库_第29张图片

docker-harbor私有仓库_第30张图片

docker-harbor私有仓库_第31张图片

docker-harbor私有仓库_第32张图片

8远端获取镜像(远程复制docker1的镜像到docker3上)
①部署docker-compose和harbor

docker-harbor私有仓库_第33张图片

②修改配置文件

docker-harbor私有仓库_第34张图片

③安装:./prepare:编译环境

docker-harbor私有仓库_第35张图片

systemctl restart docker
./install.sh

docker-harbor私有仓库_第36张图片

docker-harbor私有仓库_第37张图片

④浏览器配置:20.0.0.63
配置仓库管理:

docker-harbor私有仓库_第38张图片

docker-harbor私有仓库_第39张图片

docker-harbor私有仓库_第40张图片

配置复制管理:

docker-harbor私有仓库_第41张图片

docker-harbor私有仓库_第42张图片

docker-harbor私有仓库_第43张图片

docker-harbor私有仓库_第44张图片

docker-harbor私有仓库_第45张图片

docker-harbor私有仓库_第46张图片

docker-harbor私有仓库_第47张图片

docker-harbor私有仓库_第48张图片

docker-harbor私有仓库_第49张图片

复制私有仓库的镜像:
点进要复制的仓库、进行配置管理

docker-harbor私有仓库_第50张图片

docker-harbor私有仓库_第51张图片

docker-harbor私有仓库_第52张图片

再重新复制镜像:

docker-harbor私有仓库_第53张图片

docker-harbor私有仓库_第54张图片

你可能感兴趣的:(docker,容器,运维)