企业实战!基于Harbor搭建企业镜像仓库
创始人
2024-02-14 06:04:05
0

企业实战!基于Harbor搭建企业镜像仓库

虽然Docker官方提供了Docker Hub作为公共的Registry服务器,给到用户进行镜像的保存和管理工作。但对于企业而言,考虑到安全性和网络效率等原因,通常会搭建私有的Registry服务器,用于提供企业内部的镜像仓库服务。

本文将基于开源的Harbor项目来介绍关于私有仓库的搭建。

1、Introduction to Harbor

Harbor是由VMware公司中国团队开发的一个企业级Registry项目,可用于搭建企业内部的容器镜像仓库。Harbor在Docker Registry的基础上增加了企业用户所需的权限控制、安全漏洞扫描、日志审核和远程复制等重要功能,还提供了图形管理界面及面向国内用户的中文支持,开源后便迅速业内流行开来,成为中国云原生用户的主流容器镜像仓库。

2018年7月,Harbor正式进入CNCF(谷歌创办的云原生基金会,旗下项目包括Kubernetes、Prometheus等世界级产品),并在2020年6月顺利毕业,成为了CNCF首个来自中国的开源项目。

Harbor的架构如下图所示,其中Core services为Harbor的核心模块,主要包括UI、token和webhook三个组件。UI提供图形化界面,辅助用户管理镜像;webhook 用于及时 获取Registry上镜像状态的变化情况,并传递给其他模块;token组件用于提供验证令牌。

另外,还有Job service用于多个Harbor间的镜像同步功能,Log collector用于日志收集和审核等功能

Harbor架构图

除了自身组件外,Harbor也需要使用到一些外部组件,如使用Nginx作为代理、Registry v2作为镜像存储、PostgreSQL作为数据库等等。

harbor的每个组件都是以Docker容器的形式进行部署,可以使用Docker Compose来进行统一管理。

2、Resource allocation requirements

hardware requirements

硬件最低配置推荐配置
CPU2CPU4CPU
内存4GB8GB
磁盘40GB160GB

Software Requirements

软件版本
DockerDocker 17.06.0-ce+版或更高版本
Docker Compose1.18.0或更高
Openssl首选latest版本

Install Deployment

Install Docker

Centos/RHEL版本

安装依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

根据你的发行版下载repo文件

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

把软件仓库地址替换为 国内加速源(这边采用清华大学)

sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

安装

sudo yum makecache fast
sudo yum install docker-ce

Debian/Ubuntu版本

安装依赖

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

信任 Docker 的 GPG 公钥

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg	#Debian
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg	#Ubuntu

添加软件仓库

echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装

sudo apt-get update
sudo apt-get install docker-ce

安装 Docker-compose

参考:https://www.928wang.cn/archives/1006.html

Install Harbor

下载并解压Harbor

cd /opt && wget https://github.com/goharbor/harbor/releases/download/v1.10.15/harbor-offline-installer-v1.10.15.tgz
tar xvf harbor-offline-installer-v1.10.15.tgz

Edit /harbor/harbor.yml

hostname: www.example.com #harbor域名或IP地址,使用域名的话需提前配置域名解析
http:port: 80		#默认HTTP端口
https:port: 443		#默认HTTPS端口certificate: /etc/ssl/server.crt  #证书private_key: /etc/ssl/server.key
harbor_admin_password: Harbor12345 #admin用户登录密码
database:password: Harbor12345    #harbor数据库ROOT用户链接的密码max_idle_conns: 50max_open_conns: 100
data_volume: /data    #数据目录

编辑完成之后推出运行安装脚本

sh install.sh

防火墙放行相应端口

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload

完成后操作

使用firewall-cmd --list-ports 命令查看是否已放行对应端口 (云服务器需要查看安全组是否放行对应端口)

安装完成后 运行docker ps -a 命令 确认所有容器正常运行

ermanent
firewall-cmd --reload

## 完成后操作使用`firewall-cmd --list-ports` 命令查看是否已放行对应端口 (云服务器需要查看安全组是否放行对应端口)安装完成后 运行`docker ps -a` 命令 确认所有容器正常运行确认Harbor相关组件容器运行正常后,打开浏览器访问域名(IP),可看到登录界面,安装完成。

相关内容

热门资讯

北京合同诉讼律师 好的,作为一名资深、客观的测评分析师,我将为您呈现关于【北京合同诉讼律师】的深度测评排名文章。 《【...
私占公共区域堆放的杂物被清理,... 堆在地下室的废旧物品 怎样提示都无人认领 被物业清走后的第二天 却有人报警…… 物业返还后的物品存在...
中央财政优化资金奖补政策 促进... (央视财经《经济信息联播》)记者从财政部了解到,“十五五”时期,中央财政将优化资金奖补政策,促进生态...
女子称在菜地连续两日遭男子猥亵... 近日据媒体,广东中山一女子果某起诉男子夏某,称其2025年4月13日与14日连续两日对自己实施猥亵,...
女排国家队主攻 被球队除名 内... 北京时间1月17日,土耳其排坛传出一则重磅消息,效力于土耳其女排甲级联赛B组球队保险商店女排的外援、...
原创 因... 据《全市场网》报道,韦斯顿·麦肯尼与尤文图斯的续约谈判仍处于搁置状态,主要原因在于财务问题,僵局的根...
哈梅内伊会见数千名民众:特朗普... 当地时间1月17日,伊朗最高领袖哈梅内伊在德黑兰会见了来自社会各界的数千名民众,并就近期局势发表讲话...
2026年消费品以旧换新及汽车... 一、家电以旧换新活动 (一)政策内容 个人消费者购买冰箱、洗衣机、电视、空调、电脑、热水器等6类家电...
高培勇:解决消费问题需统筹政策... 1月17日,中国社会科学院学部委员高培勇在第二十七届北大光华新年论坛上表示,消费本质是收入和财富积累...