文章目录
1 harbor安装
1.1 前置条件
安装docker和docker-compose,如果你还没安装,那么请参考我另外一篇文档:
Centos7.9离线安装Docker24(无坑版):https://blog.csdn.net/jianghuchuang/article/details/141220379
1.2下载离线安装包
harbor官方下载地址::https://github.com/goharbor/harbor/releases/
我这里选择安装最新的2.10.3版本
1.3上传和解压harbor
#解压安装包
tar -zxvf harbor-offline-installer-v2.10.3.tgz -C /usr/local/
cd /usr/local/harbor/
1.4配置Harbor
复制配置文件
cp harbor.yml.tmpl harbor.yml
配置中比较重要的几部分:
#修改成你的服务器ip
1、hostname 改成你的服务器ip
2、http 可以修改网站的访问端口
3、https 不用的话,需要进行注释
4、data_volume 可以设置habor数据的存储路径
5、harbor_admin_password: 可以设置habor管理网站的admin的密码
根据实际来改,我只改了下图框框中的内容
vim harbor.yml
1.5 安装
sh install.sh
1.6 验证
[root@localhost harbor]# docker-compose ls
NAME STATUS CONFIG FILES
harbor running(9) /usr/local/harbor/docker-compose.yml
访问harbor后台网站:http://你的服务器ip和端口,我这里是访问:http://192.168.25.71/
进入网站后,输入账号和密码,账号是admin,密码默认是Harbor12345
登录成功后:
2 Harbor使用
2.1 创建项目
我这里创建的项目名称为:dsmp
2.2 创建用户
我这里创建的用户名叫 edge
2.3 给项目关联相关用户
在Harbor项目中,各个角色对应的权限是明确且分层的,旨在确保不同用户能够根据其职责和需求访问和操作项目中的资源。以下是Harbor项目中各个角色及其对应权限的详细说明:
- Harbor系统管理员(Harbor System Administrator)
权限概述:Harbor系统管理员拥有最多的权限,可以管理Harbor系统的所有方面。
具体权限:
列出所有项目。
设置普通用户为管理员。
删除用户。
为所有镜像设置漏洞扫描策略。
管理公共项目“库”。
编辑项目配额和添加新的扫描器。
查看、创建、删除用户(在本地用户认证模式下)。
在LDAP和OIDC认证模式下,管理组和组权限。 - 项目管理员(Project Admin)
权限概述:项目管理员负责管理单个项目,包括成员管理、策略配置等。
具体权限:
管理项目成员(添加、删除成员)。
删除项目。
管理项目级的策略。
读写、删除Artifact及项目中的其他资源。
启动漏洞扫描。 - 维护者(Maintainer)
权限概述:维护者拥有超越开发者的权限,能够执行更高级别的操作。
具体权限:
读写Artifact及项目中的其他资源。
扫描镜像。
查看复制作业。
删除镜像和Helm Chart。
上传/下载Helm Chart。 - 开发者(Developer)
权限概述:开发者拥有对项目的读写权限,可以上传和拉取镜像等Artifact。
具体权限:
读写Artifact及项目中的其他资源。
上传镜像到项目。
从项目拉取镜像。
查看日志(在某些版本中可能受限)。
上传/下载Helm Chart(如果项目中有)。 - 访客(Guest)
权限概述:访客对指定项目具有只读权限,可以拉取和重新标记镜像等Artifact,但不能推送。
具体权限:
拉取和重新标记镜像。
读取项目中的其他资源(如日志,但可能受限)。
访问Helm Chart(如果项目中有,但仅限于读取)。 - 受限访客(Limited Guest)
权限概述:受限访客是访问权限最受限的角色,主要用于拉取镜像等Artifact。
具体权限:
拉取镜像。
无法推送镜像。
无法查看日志或项目的其他成员信息。
2.4 推送镜像到harbor
2.5 将配置harbor ip加进docker的http方式信任ip列表中
如果你的harbor是使用http方式,那么就需要将harbor地址加入docker的http信任列表中,不然到时docker login会报以下错误:
Error response from daemon: Get “https://192.168.25.71:80/v2/”: http: server gave HTTP response to HTTPS client
vim /etc/docker/daemon.json
加上以下内容,这里的“192.168.25.71”改成你harbor地址
"insecure-registries": [
"192.168.25.71:80"
]
完整内容如下:
{
"registry-mirrors": [
"https://dockerproxy.com",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com"
],
"insecure-registries": [
"192.168.25.71:80"
]
}
重启docker
systemctl restart docker
注:如果你当前测试的docker和harbor在同一台服务器上,那么重启docker后,需要重新启动下harbor,执行以下命令
docker-compose -f /usr/local/harbor/docker-compose.yml up -d
2.6 登录harbor
docker login -u harbor用户名-p harbor的用户密码 harbor地址
以我为例子,我这边是:
docker login -u edge -p Harbor12345 192.168.25.71:80
2.7 镜像打标签
将镜像推送到仓库之前,需要先将镜像进行打标签
镜像格式:harbor地址/项目名称/镜像名称:镜像版本
这边以 centos:7 推送到harbor仓库为例
# 镜像
docker tag centos:7 192.168.25.71:80/dsmp/centos:7
2.8 推送镜像
docker push 192.168.25.71:80/dsmp/centos:7