自定义用户(内部管理的用户)的形式登录仓库,拉取或上传镜像
VMware公司开发的,开源的企业级的docker registry
作用:帮助用户快速的搭建一个企业级的docker仓库的服务。支持中文
(1)基于角色进行控制。用户和仓库都是基于项目进行的,用户在每个项目中都可以拥有不同的权限
(2)基于镜像在不同的harbor实例之间进行复制
(3)harbor自带数据库中的表AD/LDAP,用于对已存在的用户进行认证和管理
(4)镜像删除和垃圾回收。仓库中的镜像基于权限控制可以被删除,也可以回收镜像占用的空间
(5)图形化界面。用户可以直接通过浏览器对镜像仓库进行管理
(6)审计管理。所有对镜像仓库的操作都可以被记录溯源
(7)支持API操作。API是程序接口,端口是主机和主机之间的通信,API是应用和应用之间的接口,管理员可以基于API调用接口和更多的其他程序进行集成
(1)proxy代理:harbor安装完成后,自动生成一个nginx容器,且80端口自动对外映射,nginx作为前端代理。在harbor中,其他组件(registry仓库,UI图形化界面,token公钥对)都在nginx的反向代理后面。通过nginx代理,可以把请求转发到后端不同的应用
(2)registry仓库:存储镜像。所有docker pull/push命令都由registry负责处理。用户进行访问控制,不同用户对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):统一日志收集工具
注意:harbor都是基于docker容器化部署的,由docker-compose一键编排安装
主机名 | 作用 | IP地址 | 组件 | 硬件 |
docker1 | 仓库 | 20.0.0.16 | harbor docker-compose | 4核8G |
docker2 | 客户端 | 20.0.0.26 | harbor docker-compose | 2核4G |
docker3 | 仓库—远程同步 | 20.0.0.36 | harbor docker-compose | 2核4G |
1、本地拉取镜像
(1)安装docker-compose、harbor、docker服务
(2)编译环境./prepare
docker-harbor默认通信协议是https
(3)修改harbor配置文件
(4)安装harbor
若安装出现ERROR,重启docker服务
(5)浏览器访问20.0.0.16登录harbor
问题:无法登录harbor,核心组件不可用
解决:重新安装harbor可登录
(6)本地上传镜像
①拉取镜像
②修改镜像标签
③上传镜像
2、新建私有仓库(不点公开即私有)
-1表示不限制大小
3、创建用户
4、非管理员用户往私有仓库中上传镜像
角色 | 作用 |
访客 | 只有读权限 |
开发者 | 可以读写,不能删除 |
维护人员 | 拥有读写权限,修改其他配置项的权限 |
项目管理员 | 对该项目拥有所有权限 |
5、远程上传镜像(登录仓库-修改标签-push上传)
(1)安装docker服务
(2)远程登录仓库
修改docker配置文件
直接指向目标主机,不需要通过https访问
(3)远程上传镜像
①拉取镜像
②修改镜像标签
③上传镜像
6、仓库之间复制镜像(docker1传给docker3)
(1)安装dokcer-compose、harbor、docker服务
(2)修改harbor配置文件
(3)编译harbor环境
(4)安装harbor
(5)浏览器访问本机地址登录harbor界面
①创建源仓库(提供镜像)
②创建复制仓库(存放远程复制过来的镜像)
只能复制公有库;若要复制私有库,需在源仓库中将私有库改为公有库
所有镜像都存放在宿主机的/data目录下