Harbor 是一个开源的企业级容器镜像仓库,主要用于存储、签名和扫描容器镜像。Harbor 基于 Docker Registry 构建,并在此基础上增加了许多企业级特性,以满足企业对安全性、可扩展性和易用性的需求。Harbor 的架构由多个组件组成,包括数据访问层、服务层和前端层,这些组件协同工作,提供了高效、安全的容器镜像管理服务。它支持多种存储后端,如文件系统、S3、Ceph 等,以满足不同企业的需求。
环境准备
系统os:openEular或者Rocky
关闭防火墙和selinux,禁用selinux:systemctl stop firewalld && setenforce 0
安装docker
这里使用yum安装,先下载yum仓库。yum-utils是一个yum管理工具,扩展yum仓库的话必须要配置这个
yum install yum-utils -y
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
下载docker:yum install docker-ce -y
换国内源:
cat >> /etc/docker/daemon.json << EOF
{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.imgdb.de","https://docker-0.unsee.tech","https://docker.hlmirror.com","https://docker.1ms.run","https://func.ink","https://lispy.org","https://docker.xiaogenban1993.com"]
}
EOF
配置完成,重启docker:
systemctl daemon-reload
systemctl restart docker
搭建Habor镜像仓库需要使用到:docker-compose这个包,不过好在安装docker-ce是默认会安装的
[root@slave2 ~]# rpm -qa | grep docker-compose
docker-compose-plugin-2.27.0-1.el8.x86_64
下载harbor离线包,这里可以自己去官网下
wget -c https://github.com/goharbor/harbor/releases/download/v2.12.2/harbor-offline-installer-v2.12.2.tgz
解压与配置
tar -xvf harbor-offline-installer-v2.8.4.tgz -C /usr/local/
进入到解压到的目录中
[root@slave2 ~]# cd /usr/local/harbor/
[root@slave2 harbor]# ll
total 597536
-rw-r--r-- 1 root root 3639 Aug 15 2023 common.sh
-rw-r--r-- 1 root root 611834153 Aug 15 2023 harbor.v2.8.4.tar.gz
-rw-r--r-- 1 root root 12499 Aug 15 2023 harbor.yml.tmpl
-rwxr-xr-x 1 root root 2725 Aug 15 2023 install.sh
-rw-r--r-- 1 root root 11347 Aug 15 2023 LICENSE
-rwxr-xr-x 1 root root 1881 Aug 15 2023 prepare
这里面的harbor.yml.tmpl就是配置模板了,拷贝一份进行配置
需要修改的只有hostname字段和https相关配置
修改配置之后进行安装:
./install.sh
此时再查看80端口是否被监听:
[root@slave2 harbor]# netstat -lntup | grep 80
tcp 0 0 127.0.0.1:1514 0.0.0.0:* LISTEN 98053/docker-proxy
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 98596/docker-proxy
tcp6 0 0 :::80 :::* LISTEN 98601/docker-proxy
此时就可以浏览器访问你的这个IP地址了,用户名/密码:admin/Harbor12345
配置测试环境
点击“用户管理”——“创建用户”,我这里创建一个test用户
创建一个私有项目,点击项目,然后新建项目
然后点击我们创建的这个项目,然后点击成员,将我们新增的成员加入进去
然后点击镜像仓库,里面有推送命令,等会儿会用到
配置客户端
最先配置/etc/hosts文件
cat >> /etc/hosts << EOF
192.168.118.110 OpenLabTest
EOF
之后,客户端在安装好docker之后,编辑/etc/docker/damon.json这个文件,添加下面这一行(其余的配置国内源同上):
insecure-registries": ["registry.openlab.edu"],
重启docker:systemctl restart docker
然后随便下一个busybox作为测试:docker pull busybox
然后登录仓库:docker login OpenLabTest
然后给镜像打上标签,标签格式规范为:主机名称/项目名称/镜像名称:版本信息
docker tag busybox:latest OpenLabTest/openlab/busybox:latest
docker push 将镜像上传
此时,仓库里面就会多出一个私有镜像