Harbor镜像仓库

Harbor企业级镜像仓库

Harbor官网地址:

https://goharbor.io/

Harbor介绍

(一)Harbor镜像仓库简介

Harbor是由VMware公司开源的企业级的Docker Registry管理项目,Harbor主要提供Dcoker Registry管理UI,提供的功能包括:基于角色访问的控制权限管理(RBAC)、AD/LDAP集成、日志审核、管理界面、自我注册、镜像复制和中文支持等。Harbor的目标是帮助用户迅速搭建一个企业级的Docker registry服务。它以Docker公司开源的registry为基础。

Harbor除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm通过chart方式下载、管理、安装K8S插件,而chartmuseum可以提供存储chart数据的仓库。

注:helm就相当于k8s的yum

(二)Harbor优势

Harbor镜像仓库的优势如下所示:

·基于角色控制:有管理员与普通用户,可赋权普通用户,比如只能上传和下载,可根据项目来进行操作和管理;

·基于镜像的复制策略:也与权限相关,比如特有的用户与组才能对此项目进行相对应的操作;

·支持LDAP/AD:域控制,比如南京去下载北京harbor私有仓库的镜像,两端打上,局域网的地址,连接在一一块,数据信息的传输通过一条隧道,会通过两层加密,第一层为隧道加密,第二层为数据加密,安全可靠;

·图像删除和垃圾收集:即回收站机制;

·图形UI:具有统计功能,比如访问量与镜像下载热度;

·审计:日志,这里意义不大,主要还是借助于ELK;

·RESTful API:定义Web 语言规范的格式,方便调用Harbor 的接口,也便于二次开发。

.易于部署:Harbor 可以通过 Docker compose 和 Helm Chart 进行部署,并且最近还添加了 Harbor Operator。

(三)Harbor仓库架构

Harbor的每个组件都是以Docker容器的形式构建的,可以使用Docker Compose来进行部署。如果环境中使用了kubernetes,Harbor也提供了kubernetes的配置文件。Harbor大概需要以下几个容器组成:

·UI(Harbor的核心服务);

·Log(运行着rsyslog的容器,进行日志收集);

·MySQL(由官方mysql镜像构成的数据库容器);

·Nginx(使用Nginx做反向代理);

·Registry(官方的Docker registry);

·Adminserver(Harbor的配置数据管理器);

·Jobservice(Harbor的任务管理服务);

·Redis(用于存储session)。

Harbor的安装与使用

基础准备

使用VMare,创建一台虚拟机,镜像使用CentOS7.9(虚拟机配置自定义,推荐配置4vCPU/12G内存/100G硬盘),使用这一台虚拟机作为实验基础环境,并且虚拟机中已经完整正确的安装成功docker服务,如果不知道怎么安装docker,可以参考这个链接:学习Docker-CSDN博客

任务实施

一、Harbor安装准备

Harbor安装包地址:

https://github.com/goharbor/harbor/releases/

下载Harbor源码包

wegt https://github.com/goharbor/harbor/releases/download/v2.1.3/harbor-offline-installer-v2.1.3.tgz

wegt https://github.com/goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.1.tgz将Harbor的安装包进行解压并且移动到/usr/local/目录下

[root@docker bin]# tar -zxvf /root/harbor-offline-installer-v2.1.3.tgz -C /usr/local

修改配置文件

[root@docker bin]# cd /usr/local/harbor/
[root@docker harbor]# cp harbor.yml.tmp harbor.yml
[root@docker harbor]# vim harbor.yml
修改内容:
hostname: ip_address
http:
  port: 80
#不使用HTTPS将其注释
# https related config
#https:
# https port for harbor, default is 443
# port: 443
harbor_admin_password: Harbor12345
二、Harbor安装

使用官方自带的脚本进行安装

[root@docker harbor]# ./prepare
[root@docker harbor]# ./install

修改docker的配置文件/etc/docker/daemon.json,并且重启docker服务

[root@docker harbor]# vi /etc/docker/daemon.json
{
  "insecure-registries":["ip_address"]
}
三、上传镜像

首先如果想要将镜像上传镜像仓库上,一定要对镜像进行打标签,因为上传到镜像仓库的镜像命名要为符合仓库要求的格式,我们可以通过docker tag命令来实现(拿nginx镜像举例子

[root@docker ]# docker tag 9527c0f683c3 ip_address/library/nginx:latest

注:

1、9527c0f683c3是nginx的镜像ID,如果想要查看自己想推送的镜像ID可以使用docker images命令

2、ip_address是Harbor的ip网址也是虚拟机的网卡ip

3、nginx:latest为镜像名称加版本号

其次需要在虚拟机中登入Harbor私有仓库,使用docker login命令

 [root@docker ]#docker login -u admin -p Harbor12345 ip_address 

注:

1、参数-u为Harbor仓库的用户名

2、参数-p为Harbor仓库的密码

最后通过docker push命令将镜像进行上传

[root@docker ]# docker push ip_address/library/nginx:latest
 四、客户端下载镜像

如果想要在客户端虚拟机上下载Harbor仓库上的镜像

首先修改docker的配置文件/etc/docker/daemon.json,并且重启docker服务

[root@node]# vi /etc/docker/daemon.json
{
  "insecure-registries":["ip_address"]
}

其次虚拟机登入Harbor仓库,依旧是使用docker login命令

 [root@docker ]#docker login -u admin -p Harbor12345 ip_address 

最后使用docker pull命令来拉取在Harbor仓库上的镜像

 

[root@docker bin]# docker pull ip_address/library/nginx:latest
Using default tag: latest
latest: Pulling from library/mysql
eba3c26198b7: Pull complete
fc6c33853069: Pull complete
f1fa3ee22bea: Pull complete
5b8b24615ae8: Pull complete
cded0449fb1a: Pull complete
095378692b4a: Pull complete
110d87e5d2a3: Pull complete
bd1dbbbda514: Pull complete
982f92841ea3: Pull complete
de34c1fda3aa: Pull complete
Digest: sha256:92dc869678019f65d761155dacac660a904f6245bfe1b7997da0a73b2bfc68c9
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest


至此Harbor仓库的内容已经完成 

Harbor 是一个开源的云原生镜像仓库,支持 Docker 和 Kubernetes。搭建 Harbor 镜像仓库可以方便地管理和部署 Docker 镜像。 以下是 Harbor 镜像仓库的搭建步骤: 1. 安装 DockerDocker Compose 首先需要在服务器上安装 DockerDocker Compose,可以参考 Docker 官方文档进行安装。 2. 下载并解压 Harbor 安装包 在 Harbor 的官网上下载最新版本的 Harbor 安装包,解压到服务器上的任意目录。 3. 配置 Harbor 进入 Harbor 安装包所在目录,编辑 `harbor.cfg` 文件,配置相关参数,例如: ``` hostname = example.com ui_url_protocol = https harbor_admin_password = StrongPassword ``` 这里的 `hostname` 是 Harbor 的访问地址,`ui_url_protocol` 是访问协议,`harbor_admin_password` 是管理员密码。 4. 启动 HarborHarbor 安装包所在目录下执行以下命令启动 Harbor: ``` docker-compose up -d ``` 这会启动 Harbor 的所有组件,并且在后台运行。 5. 配置 Docker 客户端 在需要使用 Harbor 镜像仓库的客户端机器上,编辑 Docker 配置文件 `/etc/docker/daemon.json`,加入以下内容: ``` { "insecure-registries": ["example.com"] } ``` 这里的 `example.com` 是 Harbor 的访问地址。 6. 登录 Harbor 在客户端机器上执行以下命令登录 Harbor: ``` docker login example.com ``` 这里的 `example.com` 是 Harbor 的访问地址。 7. 使用 Harbor 登录成功后,就可以使用 Harbor 镜像仓库了,例如: ``` docker pull example.com/library/nginx:latest docker push example.com/library/nginx:latest ``` 这里的 `library/nginx` 是一个示例镜像,可以替换成其他镜像。 以上是 Harbor 镜像仓库的搭建步骤,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值