当前位置:   article > 正文

Docker入门到实践 (十四) Docker企业级容器镜像仓库HarBor的搭建与配置_harbor设置 database大小

harbor设置 database大小


一、前言

  在上一篇文章中已经介绍了docker compose配置文件与常用命令, 下面正式进入到Docker企业级容器镜像仓库HarBor的搭建与配置的讲解。



二、企业级容器镜像仓库HarBor的介绍

  Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装。作为一个企业级私有docker镜像仓库,HarBor提供了更好的性能和安全,以提升用户使用仓库构建和运行环境传输镜像的效率,同时HarBor支持安装在多个仓库节点的镜像资源复制,镜像全部保存在私有仓库中, 确保数据和知识产权在公司内部网络中管控。此外,HarBor也提供了友好的Web UI界面和高级的安全特性,例如:用户和角色的管理、访问控制和活动审计等。




三、HarBor 特性

  • 基于角色的访问控制:用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project) 里有不同的权限

  • 镜像复制:镜像可以在多个Registry实例中复制 (同步)。尤其适合于负载均衡,高可用,混合云和多云的场景

  • 图形化用户界面:用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间

  • AD/LDAP 支持:Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理

  • 审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理

  • 国际化:已拥有英文、中文、德文、日文和俄文的本地化版本,之后将会有更多的语言被添加进来

  • RESTful API:RESTful API 提供给管理员对于Harbor更多的操控,使得与其它管理软件集成变得更容易

  • 部署简单:提供在线和离线两种安装工具,也可以安装到vSphere平台(OVA方式) 虚拟设备



四、HarBor 组件介绍

  • Proxy(代理服务器):Harbor组件,例如Register,UI和令牌服务都在代理服务后端,代理将来自客户端和浏览器的流量返回给后端各个服务

  • Register(仓库):负责存储Docker Images和处理docker pull/push命令。HarBor会强制对访问images进行控制,register会将客户端引导到令牌服务,以获取每次push和pull请求的有效令牌

  • Core services(核心服务):Harbor核心功能,主要提供以下服务

    • UI(图形用户界面):提供图形化界面,帮助用户管理registry上的镜像(image),并对用户进行授权

    • Token(令牌):负责根据用户的项目角色为每个Docker push/pull命令签发令牌。如果从Docker客户端发送的请求中没有令牌,注册中心会将请求重定向到Token令牌服务

    • Webhook:Webhook是在注册表中配置的一种机制,可以及时获取Registry仓库上image状态的变化情况。同时,HarBor使用Webhook来更新日志、启动复制以及其他一些功能

  • Database(数据库):为Core services(核心服务) 提供数据库服务,负责储存用户权限、审计日志和Docker image分组信息等数据

  • Job services(Job服务):提供Images镜像远程复制功能,可以将本地images同步到其他HarBor实例

  • Log collector(日志采集器):帮助监控Harbor运行,负责收集其他组件的日志



五、HarBor 与 Registry的区别

  Harbor 和 Registry都是Docker的镜像仓库,但相比较于Regisrty来说,HarBor具有很多的优点,其优点如下所示:

  • 提供分层传输机制,优化网络传输:Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象

  • 提供WEB界面,优化用户体验:只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像

  • 支持水平扩展集群:当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解

  • 良好的安全机制:企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。同时HarBor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制,kubernetes中通过namespace来对资源进行隔离,在企业级应用场景中,通过将两者进行结合可以有效将kubernetes使用的镜像资源进行管理和访问控制,增强镜像使用的安全性。尤其是在多租户场景下,可以通过租户、namespace和项目相结合的方式来实现对多租户镜像资源的管理和访问控制



六、HarBor的安装与配置


官方安装文档:https://github.com/goharbor/harbor/blob/release-1.7.0/docs/installation_guide.md

1、安装环境要求

1.1、硬件要求
资源容量描述
cpu最少2 cpu4 cpu最佳
内存最少4 GB8 GB最佳
磁盘最少40 GB160 GB最佳

1.2、软件要求
软件版本要求描述
Python2.7或更高版本请注意,您可能必须在默认未安装Python解释器的Linux发行版(Gentoo,Arch)上安装Python
Docker engine1.10或更高版本有关安装说明,请参阅:docker简介与安装
Docker Compose1.6.0或更高版本有关安装说明,请参阅:docker compose简介与安装
Openssl最好是最新的生成HarBor证书和密钥

1.3、网络端口
端口协议描述
443HTTPSHarbor门户和核心API将在此端口上接受https协议的请求
4443HTTPS与Harbor的Docker Content Trust服务的连接,仅在启用Notary时才需要
80HTTPHarbor门户和核心API将在此端口上接受HTTP协议的请求


2、安装HarBor

2.1、安装Docker 和 Docker Compose

Docker安装:https://blog.csdn.net/qq_39135287/article/details/101012149#CentOS7Docker_CE__59

Docker Compose安装:https://blog.csdn.net/qq_39135287/article/details/104060264#pythonpip_4

推荐使用python-pip方式安装Docker Compose,因为在安装过程中,会顺便将HarBor需要的Python 和 Openssl给安装上


2.2、下载HarBor离线安装包

  HarBor的下载地址:https://github.com/goharbor/harbor/releases
  HarBor安装分为在线安装和离线安装 (这里我选择下载离线安装包),其区别如下:

  • Online installer(在线安装):The installer downloads Harbor’s images from Docker hub. For this reason, the installer is very small in size. (安装程序从Docker hub下载Harbor的图像。因此,安装程序非常小。)

  • Offline installer(离线安装):Use this installer when the host does not have an Internet connection. The installer contains pre-built images so its size is larger. (当主机没有互联网连接时使用此安装程序。安装程序包含预构建的映像,因此其大小较大。)

如果觉得下载比较繁琐,我已经提供了HarBor安装包
链接:https://pan.baidu.com/s/1y3kBbkin_SG1PD-I6K1Dow
提取码:ofjx



2.2、将HarBor安装包上传到服务器

下载完成之后,打开WinSCP,把我们下载好的HarBor安装包,上传到Linux的 /usr/local/software 文件目录下 (注意:这里的software文件目录需要我们自行创建,创建software目录是方便我们管理安装的软件)


2.3、解压HarBor安装包
//1、进入到software目录下
cd /usr/local/software/

//2、解压HarBor安装包
tar xzf harbor-offline-installer-v1.9.4.tgz
  • 1
  • 2
  • 3
  • 4
  • 5



2.4、编辑HarBor配置文件
//1、进入到harbor解压目录下
cd harbor/

//2、查看当前目录下的文件
ls

//3、编辑harbor.yml配置文件
vim harbor.yml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8



(1)、修改hostname属性 (提示:不要使用 localhost 或者 127.0.0.1,因为HarBor需要被外部客户端访问)

hostname: reg.mydomain.com
修改为
hostname: Linux服务器ip地址 或者 Linux服务器的域名
  • 1
  • 2
  • 3



(2)、修改http端口,默认为80端口,为了避免与Nginx端口冲突,所以这里我修改为6278端口 (端口号的修改可以任意,只要不与其他端口号冲突即可)

http:
  port: 80
修改为
http:
  port: 6278
  • 1
  • 2
  • 3
  • 4
  • 5



(3)、修改管理员(admin) 登录HarBor UI界面的密码,默认为账号为admin,密码为Harbor12345

harbor_admin_password: Harbor12345
修改为
harbor_admin_password: 123456
  • 1
  • 2
  • 3



2.5、初始化配置文件并安装
//1、初始化配置文件
./prepare

//2、安装HarBor
./install.sh

//3、查看镜像运行状态
docke-compose ps

//常用命令
docker-compose up -d  //后台启动HarBor
docker-compose start  //启动HarBor
docker-compose restart //重启HarBor
docker-compose stop  //停止HarBor
docker-compose down  //停止HarBor并删除容器
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15






2.6、访问HarBor

打开浏览器,访问HarBor,HarBor的访问地址为你在harbor.yml配置文件中设置的hostname:http端口 (这里我的为 http://192.168.198.145:6278)


2.7、登录HarBor

用户名为:admin,密码为harbor.yml配置文件中设置的harbor_admin_password



2.8、配置邮箱服务

1、选择配置管理 → 邮箱,进入到邮箱配置页面
在这里插入图片描述

2、修改相关配置 (以QQ邮箱为例),QQ授权码获取方式

邮件服务器: 由 smtp.mydomain.com 修改为 smtp.qq.com

邮件服务器端口: 默认为25,也可以修改为465

用户名: 你的qq邮箱

密码: 你的qq邮箱授权码

邮件来源: qq昵称<你的qq邮箱>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

3、测试邮件服务器是否配置成功,点击"测试邮件服务器"按钮,如果出现"邮件服务器连通正常"提示,则表示邮箱配置成功


3、修改daemon.json配置文件

//1、进入到docker目录下
cd /etc/docker/

//2、编辑daemon.json配置文件
vim daemon.json

//3、添加HarBor仓库地址,该步骤用于让docker信任HarBor仓库地址,
{"insecure-registries": ["harbor.yml配置文件中设置的hostname:http端口"]} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8


注意:"registry-mirrors"一行末尾有逗号,
在这里插入图片描述

4、重启docker服务

systemctl restart docker
  • 1





七、HarBor仓库镜像的上传、拉取与删除

1、本地镜像上传到HarBor仓库

1.1、创建项目

HarBor仓库中默认会有一个"library"的项目,所有镜像都必须存放到项目下,这里我们自己新建一个"tomcat"项目,用于存放tomcat镜像

输入项目名称, 设置项目的访问级别,项目级别分为两种:公开和私有

  • 公开:表示拉取镜像时,不需要使用"docker login"命令登录到HarBor,即可拉取镜像,但是上传镜像时,需要使用"docker login"命令,才能上传镜像

  • 私有:表示拉取 和 上传镜像时,都需要使用"docker login"命令登录到HarBor,即可拉取 或 上传镜像

存储数量 和 存储容量可以根据自己情况来设置 (这里我选择默认配置),最后点击"确定"按钮,创建项目



1.2、上传镜像至HarBor仓库
//1、标记此镜像为HarBor仓库的镜像
docker tag 镜像ID/镜像名称[:版本号] harbor.yml配置文件中设置的hostname:http端口/项目名称/镜像名称[:版本号]

//2、登录HarBor仓库
docker login harbor.yml配置文件中设置的hostname:http端口
username: admin
Password: harbor.yml配置文件中设置的harbor_admin_password

//3、上传标记的镜像
docker push harbor.yml配置文件中设置的hostname:http端口/项目名称/镜像名称[:版本号]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

以tomcat:8为例,测试镜像上传到HarBor仓库


查看镜像是否上传成功,可以看到tomcat项目的镜像仓库数 由0 变成 1


点击tomcat项目,可以查看该项目下的所有镜像

点击tomcat/tomcat镜像,可以查看该镜像的具体信息



2、拉取HarBor仓库的镜像到本地

//1、如果项目的访问级别为私有,则需要先登录到HarBor仓库 (访问级别为公开则可以跳过该步骤)
//私有项目如果不登录,则会报denied: requested access to the resource is denied 错误
docker login harbor.yml配置文件中设置的hostname:http端口
username: admin
Password: harbor.yml配置文件中设置的harbor_admin_password

//2、拉取镜像到本地
docker pull harbor.yml配置文件中设置的hostname:http端口/项目名称/镜像名称[:版本号]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8



3、HarBor仓库镜像的删除

勾选需要删除的镜像,点击"删除"按钮,在"删除镜像仓库确认"弹出框中,再次点击"删除"按钮,即可删除该镜像





Docker入门到实践系列文章列表:

Docker入门到实践 (一) docker简介与安装
Docker入门到实践 (二) docker常用命令讲解
Docker入门到实践 (三) Dockerfile解析与镜像制作
Docker入门到实践 (四) docker容器数据卷与数据卷容器
Docker入门到实践 (五) docker数据的备份、恢复与迁移
Docker入门到实践 (六) docker网络模式详解以及容器间的网络通信
Docker入门到实践 (七) docker常用软件的安装
Docker入门到实践 (八) 本地镜像推送到阿里云 和 下载镜像到本地
Docker入门到实践 (九) docker可视化界面portainer的安装与使用
Docker入门到实践 (十) IDEA集成Docker构建容器镜像,部署项目
Docker入门到实践 (十一) docker私有仓库的搭建与配置
Docker入门到实践 (十二) docker compose简介与安装
Docker入门到实践 (十三) docker compose配置文件与常用命令讲解
Docker入门到实践 (十四) docker企业级容器镜像仓库HarBor的搭建与配置




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/913127
推荐阅读
相关标签
  

闽ICP备14008679号