harbor搭建

1.Harbor简介

Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
  • 基于角色的访问控制 - 用户与 Docker 镜像仓库通过 “项目” 进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
  • 镜像复制 - 镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
  • 图形化用户界面 - 用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。
  • AD/LDAP 支持 - Harbor 可以集成企业内部已有的 AD/LDAP,用于鉴权认证管理。
  • 审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  • 国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
  • RESTful API - RESTful API 提供给管理员对于 Harbor 更多的操控,使得与其它管理软件集成变得更容易。
  • 部署简单 - 提供在线和离线两种安装工具, 也可以安装到 vSphere 平台 (OVA 方式) 虚拟设备

2.Harbor搭建

安装说明: Harbor的所有服务组件都是在Docker中部署的,所以官方安装使用Docker-compose快速部署,所以需要安装 Docker、Docker-compose。由于Harbor是基于Docker Registry V2版本,所以就要求Docker版本不小于1.10.0, Docker-compose版本不小于1.6.0。
访问方式:https
安装路径:/opt/software/harbor
挂载路径:/home/harbor_data/
https访问证书路径:/opt/software/harbor_certs/

① 下载并解压安装包

在线下载:
wget https://github.com/goharbor/harbor/releases/download/v2.7.2/harbor-online-installer-v2.7.2.tgz
tar -xvf harbor-online-installer-v2.7.2.tgz
 
 
离线安装(推荐):
先到 Release v2.7.2 · goharbor/harbor · GitHub 下载harbor-online-installer-v2.7.2.tgz安装包,然后解压安装。

② 生成CA证书

  1. 生成文件夹/opt/software/harbor_certs用于存放证书;
  2. 创建key文件
cd /opt/software/harbor_certs
openssl genrsa -out ca.keifconfigy 4096
  1. 生成证书,生成ca.crt和ca.key
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=58.210.96.146" \
 -key ca.key \
 -out ca.crt
 

③ 生成服务器证书

  1. 创建私钥
openssl genrsa -out server.key 4096
  1. 生成证书签名请求
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.96.146" \
    -key server.key \
    -out server.csr
 

④ 生成harbor仓库主机证书

  1. 创建一个 v3.ext 文件
sudo vim v3.ext
写入以下内容:
 authorityKeyIdentifier=keyid,issuer
 basicConstraints=CA:FALSE
 keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
 extendedKeyUsage = serverAuth 
 subjectAltName = IP:192.168.96.146
 
  1. 生成harbor仓库主机证书
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in server.csr \
    -out server.crt
 
 

⑤ 编辑配置文件

进入解压后的harbor文件夹
cp harbor.yml.tmpl harbor.yml  # 复制一份harbor.yml文件
vim harbor.yml
 
 

https方式:

编辑:
  • hostname改为本机ip(192.168.96.146)
  • 修改为其他指定端口(58087)
  • 向harbor提供证书
  • 修改如下图红框中内容

 

http方式(不推荐,因为需要重启docker):

编辑:
  • hostname改为本机ip(10.0.1.3)
  • 修改为其他指定端口(8087)
  • 修改如下图红框中内容
  • 修改/etc/docker/daemon.json,给insecure-registries中添加”10.0.1.3:8087“
  • 然后执行systemctl daemon-reload 和 systemctl restart docker
image.png
 
 

⑥ 准备安装环境

./prepare  # 执行prepare脚本
 
 
执行完成后,本地生成一个docker-compose.yml文件和common目录;

https方式:

注意!!!:由于在harbor.yml中修改的指定端口是外网的58087,所以在执行./prepare的时候,生成的docker-compose.yml的文件中的端口映射为58087:8443,需要把外网端口58087改成内网端口8087,如下图:
1696734836733.png
 
 

http方式:

注意docker-compose.yml文件端口如下:
image.png
 
 

⑦ 安装harbor(只需要安装时执行)

./install.sh  # 安装harbor
 
安装过程中会自动下载harbor镜像并启动相关容器。
harbor.yml文件中可查看或修改密码
image.png
 
 

⑧ 启动harbor

cd /opt/software/harbor
sudo docker-compose -f docker-compose.yml up -d
 
 

使用harbor

1. 访问harbor

网页访问:https://192.168.96.146:58087
默认管理员账号和密码为:admin  Harbor12345

2. 向docker提供证书

将server.crt和ca.crt复制到docker所在的机器固定目录中

1. 创建文件夹
    cd /etc/docker/certs.d
    sudo mkdir 192.168.96.146:58087
2. 复制文件
    sudo cp server.crt /etc/docker/certs.d/192.168.96.146:58087/
    sudo cp ca.crt /etc/docker/certs.d/192.168.96.146:58087/

登录
docker login 192.168.96.146:58087
 

3. 上传镜像

打tag推送镜像到harbor
 
docker tag detection_webserver:0.4.2 192.168.96.146:58087/detection/detection_webserver:0.4.2
docker push 192.168.96.146:58087/detection/detection_webserver:0.4.2
 

4. 拉取镜像

docker pull 192.168.96.146:58087/detection/detection_webserver:0.4.2
 
 
posted @ 2024-06-13 10:42  Mr沈  阅读(17)  评论(0编辑  收藏  举报