手把手教你搭建企业级Harbor镜像仓库

科技   2024-10-17 07:30   广东  

    码字不易,戳下方名片,关注+星标

本文主要讲解内容:
  • 什么是Harbor

  • 如何安装Harbor

  • 如何使用Harbor

  • 如何管理Harbor



1 什么是Harbor

Harbor是一个开源可信的企业级镜像仓库,主要用于存储和管理Docker镜像。

Harbor还提供了更高级的安全特性,如用户管理、访问控制和活动审计,目前大多数企业都在使用Harbor进行镜像管理。

我们本次基于目前Harbor的最新版本v2.11.1进行安装部署

2 安装Harbor

Harbor 的安装是基于 docker-compose ,通过构建多个容器来组成一个服务。需要先安装Docker和docker-compose

2.1 下载相关安装包

Harbor下载地址:

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

docker-compose下载地址:

https://github.com/docker/compose/releases/

两种下载方式 

方式一:有网环境,直接wget下载

# 下载harbor
wget https://github.com/goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.1.tgz

# 下载docker-compose
wget https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-linux-x86_64

方式二:先在有网环境下载安装包,再上传到无网环境的服务器

2.2 安装Docker

参考文章:部署Docker的三种常用方法【值得收藏】

2.3 安装Docker-compose

# 下载
wget https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-linux-x86_64

# 将执行文件复制到环境变量
cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose

# 创建软链接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 授予权限
chmod +x /usr/local/bin/docker-compose

# 查看版本信息
[root@localhost ~]# docker-compose version
Docker Compose version v2.29.7

2.4 安装harbor

# 下载软件包
cd /data && wget https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-linux-x86_64

# 解压
tar -xvf harbor-offline-installer-v2.11.1.tgz

# 修改配置文件
[root@localhost data]# cd harbor/
[root@localhost harbor]# cp harbor.yml.tmpl harbor.yml
[root@localhost harbor]# vi harbor.yml
# 需要修改的配置
hostname: 10.10.10.200 #IP地址或域名
http:
 port: 80     # 监听端口,此处端口可修改
# https:    # 未配置证书,将其注释
 # port: 443          
 # certificate: xxx
 # private_key: xxx
harbor_admin_password: Harbor12345 #  Web端admin用户密码
database:
 password: root123    # 后端数据库root密码
data_volumn: /data   # 数据存放路径

看到上面的信息就说明Harbor已经安装完成。

下面是Harbor各个组件的作用:

(1)nginx-photon:反向代理服务,用于将客户端请求转发到相应的后端服务,同时提供SSL加密和负载均衡等功能。

(2)harbor-jobservice:异步任务服务,负责处理耗时较长的任务,如镜像扫描、垃圾回收等。

(3) harbor-core:核心组件,负责处理Harbor的核心业务逻辑,包括用户认证、权限控制、镜像复制等。

(4)redis-photon:缓存服务,用于存储Harbor的缓存数据,提高系统性能。

(5)harbor-db:数据库组件,使用PostgreSQL作为后端存储,用于存储Harbor的元数据信息,如用户信息、镜像信息等。

(6)harbor-portal:前端门户组件,使用Nginx作为Web服务器,提供用户界面,让用户可以通过Web界面访问Harbor。

(7)harbor-registryctl:注册表控制器组件,负责监控和管理Harbor的各个组件。

(8)registry-photon:镜像仓库组件,负责存储和管理Docker镜像。

(9)harbor-log:日志组件,负责收集和存储Harbor的日志信息。

访问:在浏览器上输入服务器IP地址即可访问Harbor

【温馨提示】实际的企业生产环境一般不会直接通过http协议和IP方式访问。会有固定的域名和配置https进行访问。

下面演示如何配置HTTPS访问,企业生产环境一般都会拥有自己的域名和厂商证书。我演示的是自己创建的证书。

2.5 配置HTTPS

(1)创建证书

# 创建存放证书的目录
mkdir -p /data/cert/

# 创建自签名证书
openssl genrsa -out harbor.liyb.com.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650  -subj "/C=CN/ST=Beijing/L=Beijing/O=matrix/OU=test/CN=harbor.liyb.com"  -key harbor.liyb.com.key  -out harbor.liyb.com.crt

(2)修改harbor配置

# https related config
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /data/cert/harbor.liyb.com.crt
  private_key: /data/cert/harbor.liyb.com.key

  # enable strong ssl ciphers (default: false)

(3)重启Harbor

# 停止Harbor
cd /data/harbor
docker-compose down -v

# 生成配置文件,根据 harbor.yml 配置生成docker-compose文件。
./prepare  

# 后台启动harbor
docker-compose up -d 

(4)配置Docker客户端

mkdir -p /etc/docker/certs.d/

cp /data/cert/harbor.liyb.com.crt /etc/docker/certs.d/harbor.liyb.com/

修改docker的daemon.json文件

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries": ["10.10.10.200""harbor.liyb.com"]
}

重启Docker

systemctl  restart docker

(5)Docker登录harbor

[root@localhost ~]# docker login -u admin harbor.liyb.com
Password:    # 输入harbor的密码

可以看到Docker已经顺利登录Harbor仓库,可以通过push和pull进行推送和拉取镜像了。

3 使用Harbor

3.1 Web页面登录Harbor

打开浏览器,访问 https://harbor.liyb.com,或https://ip,使用配置文件中设置的管理员用户名(默认是 admin)和密码登录。

IP地址访问

域名访问harbor

注意:如果是自签证书的话,你需要在window主机的hosts文件添加IP和域名的映射

3.2 harbor界面管理

上图就是登录后的界面,有很多的功能,可以自行去研究一下。

经常使用的功能有:

(1)仓库管理 

镜像浏览与搜索:用户可以在Web界面中查看已创建的镜像仓库列表,通过点击任何一个仓库进入其详细信息页面,包括镜像列表、标签和访问权限等。同时,支持通过关键字搜索仓库中的镜像,以便快速找到所需的镜像。

镜像删除与上传:对于不再需要的镜像,可以选择删除操作,但需确保了解删除的后果。同时,支持将新的镜像上传到项目中,并为其添加标签和描述。

(2)用户权限管理

用户角色分配:用户可以创建和管理用户,并为用户分配不同的角色和权限。Harbor提供了预定义的角色(如管理员、开发人员、访客等),也支持自定义角色。

访问权限控制:除了用户管理外,还可以通过界面为用户和项目分配不同的权限,包括镜像的读取、写入和删除等操作。

(3)镜像推送拉取

镜像推送:首先需要准备一个Docker镜像,并将其推送到Harbor。然后登录到Harbor的私有仓库,标记镜像并将其推送到指定的项目。

镜像拉取:可以从Harbor中拉取镜像来部署应用程序。首先从Harbor中拉取镜像,然后使用该镜像来运行容器

3.3 推送拉取镜像实例

# Docker登录Harbor
docker  login -u admin harbor.liyb.com

# 镜像打标签
docker  tag  nginx:latest   harbor.liyb.com/product/nginx:1.26  # tag 名称= 仓库地址/项目名称/镜像名称:标记(版本号)

# 推送镜像
docker push harbor.liyb.com/product/nginx:1.26

# 拉取镜像
docker pull harbor.liyb.com/product/nginx:1.26

4 管理Harbor

4.1 启动/停止Harbor

# 进入到harbor的安装目录才能启动停止
cd /data/harbor

# 停止Harbor
docker-compose down -v

# 启动harbor
docker-compose up -d

4.2 更改配置文件

修改配置harbor.yml后需要重新加载Harbor

docker-compose down -v

# 重新生成配置文件
./prepare   

# 启动Harbor
docker-compose  up -d


熟练上面对Harbor的部署和使用,你已经可以企业环境轻松管理Harbor了。


欢迎转发点亮下方“在看”图标让更多的人看到


如果不想错过精彩内容,记得在公众号页面右上角设为星标,这样每次新文章推送才会第一时间出现在你的订阅列表中。感谢支持!!



往期精彩文章


【Docker系列知识】常用命令大全汇总


部署Docker的三种常用方法【值得收藏】


局域网内构建统一可访问的YUM源(基础运维必备技能)


Linux文件处理三剑客详解(运维高手必备)


Tomcat常用配置和调优(生产环境必备技巧)


Nginx配置文件详解及常用功能配置(实用率90%)

firewalld防火墙的详细讲解(实用率99%)



运维李哥不背锅
专注于各种运维技术、,分享Linux基础知识,服务器,数据库,云原生和网络安全等相关技术,各种进阶知识等着你,助你成为技术达人!
 最新文章