Docker-harbor私有仓库
docker-compose
docker-harbor私有仓库
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,UI,TOKEN,都在nginx的反向代理后面。通过nginx的代理,可以把请求转发到后端不同的应用。
2、registry:负责存储镜像,docker pull/push的命令都由其负责处理。用户进行访问控制,不同的用户对docker的镜像有不同的读写权限。
Registry每次都会指向一个不同的Token,强制用户每次的pull/push,都必须带一个合法的token(公钥对),Registry会通过公钥对,进行解密验证,合法身份才能进行指定操作。
3、CORE SERVICES:Harbor的核心功能:提供3个服务
????1、UI:提供图形化界面。
????2、Webhook:仓库上所有镜像的变化(增删改),都会传输给webhook,以显示在UI界面上
? ? 3、Token:签发每一次push和pull的公钥对,用来和仓库之间进行权限认证。
4、database:harbor-db,为核心core services提供数据库存储服务,用户权限,审计日志? docker镜像的分组和项目信息。
5、job service:主要用于镜像的复制,本地镜像可以同步到远程harbor上
6、log collector(harbor-log)统一日志收集工具。
harbor都是基于docker容器化部署的,由docker-compose一键编排,安装。
docker1:安装仓库? ? ? ? 192.168.233.40? ? ? ? docker-ce? har-bor? ?docker-compose
docker2:客户端? ? ? ? ? ??192.168.233.50? ? ? ? docker-ce? har-bor? ?docker-compose
docker3:安装仓库---实现远程同步? 192.168.233.60? ? ? ? docker-ce? har-bor? docker-compose
准备环境
修改主配置文件
vim harbor.yml
修改IP
harbor_admin_passworf:123456
设置管理员的密码
database的password:数据库的密码默认root123
data_volume:harbor默认保存镜像的路径(默认就是/data)
jobservice:(jobservice主要用于远程同步)
max_job_workers: 10
镜像作业的复制线程为10
./prepare #编译环境
ERROR:root:Error: The protocol is https but attribute ssl_cert is not set
报错原因
https:docker-harbor默认的通信协议是https
https:加密通信协议
解决方法:本地用的是http,需要修改配置文件
将https注释掉之后./install执行一下
docker-compose ps查看一下
浏览器访问
用户名admin
密码使用修改后的123456
本地主机上传镜像
先docker pull拉取镜像
docker images查看拉取的镜像
部署(本地)
docker tag? nginx:1.22.0?127.0.0.1/library/nginx:wx
docker tag 标签
library项目名称
上传
发现报错
unauthorized: unauthorized to access repository: library/nginx, action: push: unauthorized to access repository: library/nginx, action: push
原因:要先登录,再上传
回到页面刷新一下,进入项目里面就可以看到nginx,再点击进去就可以看见镜像
+
角色:
访客:只能看,只有读权限
开发者:可以有读写权限,但是没有删除权限。
维护者:读写权限,
项目管理员:只对该项目拥有所有权限
insecure-registry
仓库之间进行同步
9:55
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!