Harbor介绍
介绍引用:https://www.oschina.net/p/harbor?hmsr=aladdin1e1
Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。
作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
基于角色的访问控制 - 用户与 Docker 镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
镜像复制 - 镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
图形化用户界面 - 用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。
AD/LDAP 支持 - Harbor 可以集成企业内部已有的 AD/LDAP,用于鉴权认证管理。
审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
RESTful API - RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。
部署简单 - 提供在线和离线两种安装工具, 也可以安装到 vSphere 平台(OVA 方式)虚拟设备。
基础准备
Harbor 依赖于 Docker 和 Docker compose组件
安装 Docker
https://blog.csdn.net/weixin_45813250/article/details/123387028
安装 Docker Compose
https://blog.csdn.net/weixin_45813250/article/details/111014461
安装 Harbor
Harbor 下载地址:https://github.com/goharbor/harbor/releases
网盘链接:https://pan.baidu.com/s/18ZwKZSlrxj44ql_ZbC9B6A
提取码:HarB
1. 上传到服务器,进行解压缩
tar -zxf harbor-offline-installer-v2.1.3.tgz -C /usr/local/
1
2. 修改配置文件
cd /usr/local/harbor/
cp harbor.yml.tmp harbor.yml
vim harbor.yml
hostname: 192.168.10.107 # 修改为本机IP
#https: # 因为自己搭建未使用 https 所以注释
# # https port for harbor, default is 443
# port: 443
# # The path of cert and key files for nginx
# certificate: /your/certificate/path
# private_key: /your/private/key/path
harbor_admin_password: Harbor12345 # admin 密码
1
2
3
4
5
6
7
8
9
10
11
12
3. 执行安装脚本
./install.sh
......
Building with native build. Learn about native build in Compose here: https://docs.docker.com/go/compose-native-build/
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating registryctl ... done
Creating harbor-db ... done
Creating redis ... done
Creating registry ... done
Creating harbor-portal ... done
Creating harbor-core ... done
Creating harbor-jobservice ... done
Creating nginx ... done
✔ ----Harbor has been installed and started successfully.----
1
2
3
4
5
6
7
8
9
10
11
12
13
14
验证操作
访问网页配置用户
根据情况给予权限
管理员用户拥有创建仓库和删除镜像的权限
普通用户拥有上传镜像和拉取镜像权限 无法删除仓库和镜像
1
2
3
配置 Docker
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=http://192.168.10.107
systemctl daemon-reload
systemctl restart docker
1
2
3
4
给镜像打标签
docker tag k8s.gcr.io/etcd:3.4.13-0 192.168.10.107/harbor/etcd:3.4.13-0
docker tag k8s.gcr.io/coredns:1.7.0 192.168.10.107/harbor/coredns:1.7.0
...
1
2
3
上传到 Harbor
docker login 192.168.10.107 # 登录 Harbor
Username: k8s
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
docker push 192.168.10.107/harbor/coredns:1.7.0
The push refers to repository [192.168.10.107/harbor/coredns]
96d17b0b58a7: Pushed
225df95e717c: Pushed
1.7.0: digest: sha256:242d440e3192ffbcecd40e9536891f4d9be46a650363f3a004497c2070f96f5a size: 739
错误调整
docker login 的时候报错: Error response from daemon: Get http://192.168.10.107/v2/: dial tcp 192.168.10.107:80: connect: connection refused
· 重启 Docker 的时候 Harbor 的镜像可能没有起来,将没起来的镜像 docker-compose start [容器名]
docker push 的时候报错:96d17b0b58a7: Retrying in 4 seconds
· 手动创建一个 Harbor 的项目