1 什么是Harbor
harbor是VMware公司开源的企业级Registry项目,其的目标是帮助用户迅速搭建一个企业级的Docker registry 服务。
2 什么是Registry
Registry是一个无状态的,高可扩展的服务器端应用程序,用于存储和分发Docker Image。
3 第一次使用Harbor
3.1登录
默认用户名密码:admin/Harbor12345
3.2创建项目
填写项目名称,设置访问级别;如果设置为公共仓库,则所有人对此项目下的镜像拥有读权限,命令行中不需要执行"docker login"即可下载镜像。
4为项目添加镜像
4.1登录本地私有registry
docker login 192.168.88.128
登录过程中组件的交互:
(a) 首先,这个请求会由监听80端口的proxy容器接收到。根据预先设置的匹配规则, 容器中的Nginx会将请求转发给后端的registry 容器;
(b) 在registry容器一方,由于配置了基于token的认证,registry会返回错误代码401,提示Docker客户端访问token服务绑定的URL。在Harbor中,这个URL指向Core Services;
(c) Docker 客户端在接到这个错误代码后,会向token服务的URL发出请求,并根据HTTP协议的Basic Authentication规范,将用户名密码组合并编码,放在请求头部(header);
(d)类似地,这个请求通过80端口发到proxy容器后,Nginx会根据规则把请求转发给ui容器,ui容器监听token服务网址的处理程序接收到请求后,会将请求头解码,得到用户名、密码;
(e) 在得到用户名、密码后,ui容器中的代码会查询数据库,将用户名、密码与mysql容器中的数据进行比对(注:ui 容器还支持LDAP的认证方式,在那种情况下ui会试图和外部LDAP服务进行通信并校验用户名/密码)。比对成功,ui容器会返回表示成功的状态码, 并用密钥生成token,放在响应体中返回给Docker 客户端。
4.2为镜像打tag
#tag格式为:domain(ip)/project/image:version
docker tag vmware/photon:1.0 192.168.88.128/hb/vmware/photon:1.0
4.3push镜像到私有registry
docker push 192.168.88.128/hb/vmware/photon:1.0
4.4 删除、下载镜像
docker rmi
docker pull