docker-harbor私有仓库

docker-harbor私有仓库

仓库:保存镜像

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

harbor是什么

是VMware公司开发的,开源的企业级的docker registry项目。

帮助用户快速的搭建一个企业级的docker仓库的服务。

支持中文。

harbor的特性

1.基于角色进行控制,用户和仓库都是基于项目进行的,用户在每个项目中开源拥有不同的权限。

2.基于镜像,在不同的harbor实例之间进行复制。

3.harbor自带一个数据库,AD/LDAP(类似于数据库的表),对已经存在的用户进行认证和管理。

4.镜像删除和垃圾回收,仓库中的镜像可以被删除(基于权限控制),也可以回收镜像占用的空间

5.图形化界面,用户可以直接通过了浏览器来对镜像仓库进行管理

6.审计管理,所有对镜像仓库的操作都可以被记录到溯源。

7.支持API操作,

API的程序接口 端口:主机与主机之间的通信

而API是应用和应用之间的接口。

有了API,管理员可以基于API调用接口,和更多的其他程序进行集成。

harbor的组件

1.proxy:

安装完了harbor之后,他会自动生成一个nginx的容器,自动对外映射,80端口,nginx前端代理,在harbor当中 registry,UI,TOKEN,都在nginx的反向代理后面。通过nginx的代理,可以把请求转发到后端不同应用。

2.Registry:

负责存储镜像,所有的docker pull/pull的命令都有其负责。用户进行访问控制。不同的用户对docker的镜像有不同的操作(读写)权限。

这种情况,registry每次都会指向一个不同的TOKEN,强制用户每次的pull/push,都必须带一个合法的 token(公钥对),registry会通过公钥对,进行解密验证,身份合法才能指定操作。

3.CORE SERVICES:

harbor的核心功能(提供三个服务)

  • 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一键编排,安装。

tar -xf .... -C ./usr/local
cd /usr/local/harbor/
cp harbor.yml.tmpl

保存镜像的位置

本地主机上传镜像

docker pull nginx:1.22.0
docker tag nginx:1.22.0 127.0.0.1/library/nginx:dn1
docker images
docker login -u admin -p 123456 http://127.0.0.1
docker push 127.0.0.1/library/nginx:dn1

相关推荐
aherhuo4 分钟前
基于openEuler22.09部署OpenStack Yoga云平台(一)
linux·运维·服务器·openstack
WebDeveloper20017 分钟前
如何使用美国域名中心US Domain Center和WordPress创建商业网站
运维·服务器·css·网络·html
老大白菜28 分钟前
Windows 11 安装 Dify 完整指南 非docker环境
windows·docker·容器
檀越剑指大厂30 分钟前
【Linux系列】Shell 脚本中的条件判断:`[ ]`与`[[ ]]`的比较
linux·运维·服务器
2301_819287123 小时前
ce第六次作业
linux·运维·服务器·网络
CIb0la3 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
武汉联从信息3 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
天天进步20153 小时前
STUN服务器实现NAT穿透
运维·服务器
PieroPc3 小时前
Python 自动化 打开网站 填表登陆 例子
运维·python·自动化
VinciYan4 小时前
基于Jenkins+Docker的自动化部署实践——整合Git与Python脚本实现远程部署
python·ubuntu·docker·自动化·jenkins·.net·运维开发