【Docker五】使用Harbor搭建Docker私有仓库

目录

一、harbor概述

1、harbor概念:

2、harbor的特性

3、harbor的组件:

二、harbor实验:

1、搭建harbor

2、远程主机使用docker-harbor:

3、镜像同步:


一、harbor概述

1、harbor概念:

harbor:是由VMware公司开发的,开源的企业级的docker register(docker仓库)项目。支持中文

主要的目的:帮助用户快速搭建一个企业级的docker仓库的服务

2、harbor的特性

  1. 基于角色进行控制,用户和仓库都是基于项目进行的,用户在每个项目中可以拥有不同的权限
  2. 基于镜像,在不同的harbor实例之间进行复制
  3. harbor自带一个数据库,AD/LDAP(类似于数据库中的表),对已存在的用户进行认证和管理
  4. 镜像删除和垃圾回收,仓库中的镜像可以被删除(基于权限控制的),也可以回收镜像占用的空间
  5. 自带图形化界面,用户可以直接通过浏览器来对镜像仓库进行管理
  6. 审计管理,所有对镜像仓库的操作,都可以被记录溯源
  7. 支持API操作

端口:主机和主机之间通信。API是应用和应用之间的接口(美团付款到微信支付)。管理员可以基于API调用接口,和更多的其他程序进行集成

3、harbor的组件:

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

2、Register:负责存储镜像,所有的docker pull/push命令都由其负责。用户进行访问控制,不同的用户对docker镜像有不同的读写权限。Register每次都会指向一个不同的Token,强制用户每次的pull/push,都必须带一个合法的Token(公钥对),Register会通过公钥对,进行解密验证,身份合法才能指定操作

3、core services:harbor的核心功能,提供三个服务:

        ·UI:提供图形化界面

        ·webhook:仓库上所有镜像的变化(增删改),都会传送给webhook,以显示在UI界面上

        ·Token:签发每一次push和pull的公钥对,用来和仓库之间进行权限认证

4、database:harbor-db,为核心组件core-services提供数据库存储服务,存储用户权限,审计日志,docker镜像的本组和项目信息

5、job services:主要用于镜像的复制,本地镜像可以同步到远程harbor上

6、log collector(harbor-log):统一日志收集工具

harbor都是基于docker容器化部署的,由docker-compose一键编排,安装。

二、harbor实验:

三台docker:

docker1:安装仓库 20.0.0.52 docker-ce harbor docker-compose

docker2:客户端 20.0.0.51 docker-ce harbor docker-compose

docker3:安装仓库——实现远程同步20.0.0.28 docker-ce harbor docker-compose

1、搭建harbor

安装docker-compose和docker-harbor

tar -xf harbor-offline-installer-v2.8.1.tgz -C /usr/local/

cd /usr/local/harbor/

cp harbor.yml.tmpl harbor.yml

2、修改harbor配置文件:

vim harbor.yml

docker-harbor默认的通信协议是https加密通信协议,但是我们用不了https协议,需要购买才能使用

编译环境:

./prepare

./install.sh

浏览器访问docker-harbor:

访问本机地址即可:20.0.0.52

上传镜像到docker-harbor仓库:

docker pull nginx:1.22.0

docker login -u admin -p 123456 http://127.0.0.1

docker tag nginx:1.22.0 127.0.0.1/library/nginx:test1

docker push 127.0.0.1/library/nginx:test1

创建一个新项目:

角色的作用:

  1. 访客:只能看,只有读权限
  2. 开发者:开发者可以有读写权限,但是没有删除权限
  3. 维护人员:读写权限,修改其他配置项的权限
  4. 项目管理员:对该项目拥有所有权限

没点公开,这是一个私有仓库:

创建用户:

还要给指定仓库新建成员,不然没有对指定仓库操作的权限

用其他用户上传镜像:

docker1镜像保存位置:

2、远程主机使用docker-harbor:

docker2:20.0.0.51

安装docker-harbor

修改dockerserver配置文件

vim /usr/lib/systemd/system/docker.service

13行修改

直接指向目标主机

远程上传到harbor

浏览器查看:

3、镜像同步:

docker3也安装harbor

登录docker3的harbor

建立同步:

将私有仓库改为公共仓库:

下面点保存

然后再复制同步:

猜你喜欢

转载自blog.csdn.net/koeda1/article/details/134992383