docker-harbor私有仓库

发布时间:2023年12月17日

1、私有仓库

自定义用户(内部管理的用户)的形式登录仓库,拉取或上传镜像

2、harbor定义

VMware公司开发的,开源的企业级的docker registry

作用:帮助用户快速的搭建一个企业级的docker仓库的服务。支持中文

3、docker-harbor特性

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

(2)基于镜像在不同的harbor实例之间进行复制

(3)harbor自带数据库中的表AD/LDAP,用于对已存在的用户进行认证和管理

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

(5)图形化界面。用户可以直接通过浏览器对镜像仓库进行管理

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

(7)支持API操作。API是程序接口,端口是主机和主机之间的通信,API是应用和应用之间的接口,管理员可以基于API调用接口和更多的其他程序进行集成

4、harbor组件

(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目录下

文章来源:https://blog.csdn.net/2303_79207100/article/details/134992340
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。