docker三大组件:镜像、容器、仓库
仓库:保存镜像
私有,自定义用户的形式登陆仓库,拉取或者上传镜像(内部管理的用户)
harbor是VMware公司开发的开源的企业级的docker registry项目
帮助用户快速的搭建一个企业级的docker仓库的服务
支持中文
harbor的特性
1、基于角色进行控制,用户和仓库都是基于项目进行的,用户在每个项目中可以拥有不同的权限
2、基于镜像,在不同的harbor实例之间进行复制
3、harbor自带一个数据库,AD/LDAP(类似于数据库中的表)对已经存在的用户进行认证和管理
4、镜像删除和垃圾回收。仓库中的镜像可以被删除(基于权限控制的),也可以回收镜像占用的空间
5、图形化界面的,用户可以直接通过浏览器来对镜相仓库进行管理
6、审计管理。所有对镜像仓库的操作,都可以被记录溯源
7、支持API操作
API的程序接口,端口:主机和主机之间的通信
API是应用和应用之间的接口。管理员可以基于API调用接口,和更多的其他的程序进行
集成。
harbor的组件
1、proxy ?安装完harbor之后,会自动生成一个nginx容器,自动对外映射(80端口)。这里nginx作为前端代理,在harbor中,registry、token都在nginx反向代理后面。通过nginx代理,可以把请求转发到后端不同的应用
2、registry ?负责存储镜像,docker pull/push的命令都由其负责。要对用户进行访问控制,不同的用户对docker有不同的读写权限,registry每次都会指向一个不同的token,强制用户每次的pull/push都必须带一个合法的token(可以理解为公钥对),registry会通过公钥对进行解密验证,身份合法才能指定操作
3、core services ?是harbor的核心功能,提供三个服务
①UI ?提供图形化界面
②Webhook 仓库上所有镜像的变化(增删改),都会传送给webhook,以显示在UI界面上
③Token 签发每一个pull和push的公钥对,用来和仓库之间进行权限认证
4、database:harbor-db ?为核心core services提供数据存储服务、用户权限、审计日志docker镜像的分组和项目信息
5、Job service ?主要用于镜像的复制,本地镜像可以同步到远程harbor上
6、log collector(harbor-log) ?统一日志收集工具
harbor都是基于docker容器化部署的,docker-compose一键编排、安装
docker1 ?20 ?安装仓库 ?docker-ce har-bor docker-compose
docker2 ?30 ?客户端 ??docker-ce har-bor docker-compose
docker3 ?40 ?安装仓库--实现远程同步 ??docker-ce har-bor docker-compose
vim harbor.yml
./prepare
ls
./install.sh
systemctl restart docker
./install.sh
docker-compose ps
doker ps
192.168.233.20
密码:123456
docker pull nginx:1.22.0
cd /opt
docker tag nginx:1.22.0 127.0.0.1/library/nginx:fmh1
docker images
docker login -u admin -p 123456 http://127.0.0.1
docker push 127.0.0.1/library/nginx:fmh1
https;docker-harbor默认的通信协议是https加密通信协议
角色:
访客:只能看,只有读权限
开发者:可以有读写权限,但是没有删除权限
维护人员:读写权限,修改其他配置项的权限
项目管理员: 对该项目拥有所有权限