一、Installing harbor-2.6.2 on openEuler
1 地址
2 Harbor 安装条件
部署Harbor的最低硬件和软件配置:https://goharbor.io/docs/2.0.0/install-config/installation-prereqs
2.1 Hardware
The following table lists the minimum and recommended hardware configurations for deploying Harbor.
Resource | Minimum | Recommended |
---|---|---|
CPU | 2 CPU | 4 CPU |
Mem | 4 GB | 8 GB |
Disk | 40 GB | 160 GB |
2.2 Software
The following table lists the software versions that must be installed on the target host.
Software | Version | Description |
---|---|---|
Docker engine | Version 17.06.0-ce+ or higher | For installation instructions, see Docker Engine documentation |
Docker Compose | Version 1.18.0 or higher | For installation instructions, see Docker Compose documentation |
Openssl | Latest is preferred | Used to generate certificate and keys for Harbor |
2.3 Network ports
Harbor requires that the following ports be open on the target host.
Port | Protocol | Description |
---|---|---|
443 | HTTPS | Harbor portal and core API accept HTTPS requests on this port. You can change this port in the configuration file. |
4443 | HTTPS | Connections to the Docker Content Trust service for Harbor. Only required if Notary is enabled. You can change this port in the configuration file. |
80 | HTTP | Harbor portal and core API accept HTTP requests on this port. You can change this port in the configuration file. |
3 docker 和 docker-compose 安装在底部!
二、离线安装 Harbor
1 wget 下载
mkdir /opt/software && cd /opt/software wget https://github.com/goharbor/harbor/releases/download/v2.6.2/harbor-offline-installer-v2.6.2.tgz
2 解压
tar -zxvf /opt/software/harbor-offline-installer-v2.6.2.tgz -C /opt && cd /opt/harbor && ll total 774M -rw-r--r-- 1 root root 3.6K Nov 9 17:35 common.sh -rw-r--r-- 1 root root 774M Nov 9 17:36 harbor.v2.6.2.tar.gz -rw-r--r-- 1 root root 11K Nov 9 17:35 harbor.yml.tmpl -rwxr-xr-x 1 root root 3.1K Nov 9 17:35 install.sh -rw-r--r-- 1 root root 12K Nov 9 17:35 LICENSE -rwxr-xr-x 1 root root 1.9K Nov 9 17:35 prepare
最主要的是 harbor.yml.tmpl
和 install.sh
,分别是配置文件和安装执行文件。
3 修改配置文件
# 备份一下 cp /opt/harbor/harbor.yml.tmpl /opt/harbor/harbor.yml # 修改配置文件 vim /opt/harbor/harbor.yml 5 hostname: 114.116... 10 port: 8084 34 harbor_admin_password: root 39 password: root123 47 data_volume: /opt/harbor/data 131 location: /var/log/harbor # 创建数据和日志目录 mkdir /opt/harbor/data mkdir /var/log/harbor
4 修改daemon
添加http的通信地址,docker默认使用https进行通信,如果配置了https协议就不需要添加。
cat > /etc/docker/daemon.json << EOF { "registry-mirrors": [ "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn", "https://dockerhub.azk8s.cn", "http://hub-mirror.c.163.com" ], "experimental": true, "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "insecure-registries": ["114.116...:8084"] } EOF
5 重新加载配置和重启docker
systemctl daemon-reload && systemctl restart docker
6 执行部署脚本
/opt/harbor/install.sh ## 查看进程 ps -ef |grep harbor ## 查看镜像 docker images ## 查看镜像启动 docker ps -a
7 登陆 Harbor
服务器 IP:8084
默认用户名:admin
密码:root
8 命令行登陆 docker
docker info docker login 114.116...:8084
三、测试上传和下载
1 harbor创建项目
项目--->新建项目--->项目名称--->镜像仓库
2 对需要推送的镜像签名
docker pull tomcat docker images # tomcat镜像设置标签 docker tag tomcat:latest 114.116...:8084/iyuyixyz/tomcat:latest docker push 114.116...:8084/iyuyixyz/tomcat:latest
推送成功!
四、harbor的停止与启动
cd /opt/harbor ## 停止 docker-compose stop ## 启动(第一次需要使用 up -d) docker-compose start # 如果 Harbor 已在运行,请停止并删除现有实例。 ## 数据保留在文件系统中(慎用) docker-compose down # 创建并启动 docker-compose up -d
X、One Step Success
1 /opt/harbor/install.sh
harbor 安装日志
查看代码
[root@ecs-65685 ~]# /opt/harbor/install.sh [Step 0]: checking if docker is installed ... Note: docker version: 20.10.16 [Step 1]: checking docker-compose is installed ... Note: docker-compose version: 2.10.2 [Step 2]: loading Harbor images ... 93d5db33d7f0: Loading layer [==================================================>] 37.72MB/37.72MB fed5229d083f: Loading layer [==================================================>] 8.902MB/8.902MB 60993d7b1dd7: Loading layer [==================================================>] 3.584kB/3.584kB dcfafa86c82f: Loading layer [==================================================>] 2.56kB/2.56kB 8eecc685f414: Loading layer [==================================================>] 102.3MB/102.3MB d93c6405d04a: Loading layer [==================================================>] 103.1MB/103.1MB Loaded image: goharbor/harbor-jobservice:v2.6.2 a279a640c793: Loading layer [==================================================>] 6.287MB/6.287MB 4f9d6222bbfe: Loading layer [==================================================>] 4.096kB/4.096kB 55ce939e7c9a: Loading layer [==================================================>] 3.072kB/3.072kB a631cda93151: Loading layer [==================================================>] 186MB/186MB 6fe15b823e2b: Loading layer [==================================================>] 12.87MB/12.87MB 48c9bf72ec70: Loading layer [==================================================>] 199.6MB/199.6MB Loaded image: goharbor/trivy-adapter-photon:v2.6.2 a9c145b6d823: Loading layer [==================================================>] 5.759MB/5.759MB 7493dee46b78: Loading layer [==================================================>] 90.88MB/90.88MB 531fd3669887: Loading layer [==================================================>] 3.072kB/3.072kB 8bf93a9c7cac: Loading layer [==================================================>] 4.096kB/4.096kB 697af810c7b0: Loading layer [==================================================>] 91.67MB/91.67MB Loaded image: goharbor/chartmuseum-photon:v2.6.2 565c6d1e1338: Loading layer [==================================================>] 119.9MB/119.9MB 070770563b0d: Loading layer [==================================================>] 3.072kB/3.072kB 1cbd1219edb1: Loading layer [==================================================>] 59.9kB/59.9kB 1eafa56427f8: Loading layer [==================================================>] 61.95kB/61.95kB Loaded image: goharbor/redis-photon:v2.6.2 b1e37b42b3c0: Loading layer [==================================================>] 119.1MB/119.1MB Loaded image: goharbor/nginx-photon:v2.6.2 0242e94056b7: Loading layer [==================================================>] 5.754MB/5.754MB f25460e36589: Loading layer [==================================================>] 8.735MB/8.735MB 0854e8369d2a: Loading layer [==================================================>] 14.47MB/14.47MB 1d58fd938f61: Loading layer [==================================================>] 29.29MB/29.29MB bbf9db741c3d: Loading layer [==================================================>] 22.02kB/22.02kB 41ea5b5c915c: Loading layer [==================================================>] 14.47MB/14.47MB Loaded image: goharbor/notary-signer-photon:v2.6.2 1a91031428df: Loading layer [==================================================>] 8.902MB/8.902MB 3b0b5cc72c70: Loading layer [==================================================>] 3.584kB/3.584kB 773ad3349c8a: Loading layer [==================================================>] 2.56kB/2.56kB 39140cab076f: Loading layer [==================================================>] 83.92MB/83.92MB 6c80f545b0fa: Loading layer [==================================================>] 5.632kB/5.632kB 0ccee37aa42e: Loading layer [==================================================>] 106.5kB/106.5kB 756d72e6b8c7: Loading layer [==================================================>] 44.03kB/44.03kB 01a12d2708e6: Loading layer [==================================================>] 84.87MB/84.87MB eab188b4f0ed: Loading layer [==================================================>] 2.56kB/2.56kB Loaded image: goharbor/harbor-core:v2.6.2 3aecbbff620d: Loading layer [==================================================>] 1.097MB/1.097MB 3ee789a1e97c: Loading layer [==================================================>] 5.888MB/5.888MB 285f58d22327: Loading layer [==================================================>] 169MB/169MB b47f4e789504: Loading layer [==================================================>] 16.98MB/16.98MB e8b4a74e7102: Loading layer [==================================================>] 4.096kB/4.096kB 52bc97105e75: Loading layer [==================================================>] 6.144kB/6.144kB 21cad868f5ac: Loading layer [==================================================>] 3.072kB/3.072kB 6b24213c30fd: Loading layer [==================================================>] 2.048kB/2.048kB 54dd774f4fcd: Loading layer [==================================================>] 2.56kB/2.56kB 8fcc4e1141e7: Loading layer [==================================================>] 2.56kB/2.56kB 47e81a37ed9a: Loading layer [==================================================>] 2.56kB/2.56kB 15a2f5707a75: Loading layer [==================================================>] 8.704kB/8.704kB Loaded image: goharbor/harbor-db:v2.6.2 b87a3132dc28: Loading layer [==================================================>] 5.759MB/5.759MB 099c3879eab4: Loading layer [==================================================>] 4.096kB/4.096kB e111d5399557: Loading layer [==================================================>] 17.11MB/17.11MB 0339872ecc4b: Loading layer [==================================================>] 3.072kB/3.072kB 28d42c5fb14d: Loading layer [==================================================>] 29.71MB/29.71MB a6e47445b2a9: Loading layer [==================================================>] 47.61MB/47.61MB Loaded image: goharbor/harbor-registryctl:v2.6.2 dc8141f6851b: Loading layer [==================================================>] 8.902MB/8.902MB 98b4e2589226: Loading layer [==================================================>] 25.08MB/25.08MB b413ead94415: Loading layer [==================================================>] 4.608kB/4.608kB 2c8d3d788084: Loading layer [==================================================>] 25.88MB/25.88MB Loaded image: goharbor/harbor-exporter:v2.6.2 393d5a0ffc78: Loading layer [==================================================>] 43.85MB/43.85MB a93c9af803e4: Loading layer [==================================================>] 65.97MB/65.97MB 7d77c2b336d0: Loading layer [==================================================>] 18.28MB/18.28MB a023a4db994f: Loading layer [==================================================>] 65.54kB/65.54kB 938defed7f01: Loading layer [==================================================>] 2.56kB/2.56kB 40a257e6076f: Loading layer [==================================================>] 1.536kB/1.536kB 0a9ee117d49e: Loading layer [==================================================>] 12.29kB/12.29kB fee3e00ceac7: Loading layer [==================================================>] 2.613MB/2.613MB aa7a1d37a974: Loading layer [==================================================>] 379.9kB/379.9kB Loaded image: goharbor/prepare:v2.6.2 43e329977d55: Loading layer [==================================================>] 5.759MB/5.759MB cd7f664a365e: Loading layer [==================================================>] 4.096kB/4.096kB d52491a2b6aa: Loading layer [==================================================>] 3.072kB/3.072kB 96c88da130e9: Loading layer [==================================================>] 17.11MB/17.11MB 3ed947e61e01: Loading layer [==================================================>] 17.9MB/17.9MB Loaded image: goharbor/registry-photon:v2.6.2 c326200729cd: Loading layer [==================================================>] 5.754MB/5.754MB dddf8a3ea2da: Loading layer [==================================================>] 8.735MB/8.735MB 64881611b8c7: Loading layer [==================================================>] 15.88MB/15.88MB e8316cf8a6f4: Loading layer [==================================================>] 29.29MB/29.29MB a36ddfae8822: Loading layer [==================================================>] 22.02kB/22.02kB 071790bc488e: Loading layer [==================================================>] 15.88MB/15.88MB Loaded image: goharbor/notary-server-photon:v2.6.2 02fbd82c1ad9: Loading layer [==================================================>] 119.1MB/119.1MB 4cb31a91fcbf: Loading layer [==================================================>] 7.538MB/7.538MB 5c4e30d33b60: Loading layer [==================================================>] 1.185MB/1.185MB Loaded image: goharbor/harbor-portal:v2.6.2 f0b226869da1: Loading layer [==================================================>] 126.9MB/126.9MB 375103145f01: Loading layer [==================================================>] 3.584kB/3.584kB 5cf0e3f47476: Loading layer [==================================================>] 3.072kB/3.072kB 67b68a640c0f: Loading layer [==================================================>] 2.56kB/2.56kB d1537b9cab8f: Loading layer [==================================================>] 3.072kB/3.072kB fccaf06d29a5: Loading layer [==================================================>] 3.584kB/3.584kB 02d47852b759: Loading layer [==================================================>] 20.99kB/20.99kB Loaded image: goharbor/harbor-log:v2.6.2 [Step 3]: preparing environment ... [Step 4]: preparing harbor configs ... prepare base dir is set to /opt/harbor WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https Generated configuration file: /config/portal/nginx.conf Generated configuration file: /config/log/logrotate.conf Generated configuration file: /config/log/rsyslog_docker.conf Generated configuration file: /config/nginx/nginx.conf Generated configuration file: /config/core/env Generated configuration file: /config/core/app.conf Generated configuration file: /config/registry/config.yml Generated configuration file: /config/registryctl/env Generated configuration file: /config/registryctl/config.yml Generated configuration file: /config/db/env Generated configuration file: /config/jobservice/env Generated configuration file: /config/jobservice/config.yml Generated and saved secret to file: /data/secret/keys/secretkey Successfully called func: create_root_cert Generated configuration file: /compose_location/docker-compose.yml Clean up the input dir Note: stopping existing Harbor instance ... [Step 5]: starting Harbor ... [+] Running 10/10 ⠿ Network harbor_harbor Created 0.0s ⠿ Container harbor-log Started 0.5s ⠿ Container redis Started 0.8s ⠿ Container harbor-portal Started 1.0s ⠿ Container registry Started 1.0s ⠿ Container harbor-db Started 1.1s ⠿ Container registryctl Started 1.1s ⠿ Container harbor-core Started 1.2s ⠿ Container nginx Started 1.6s ⠿ Container harbor-jobservice Started 1.7s ✔ ----Harbor has been installed and started successfully.----
Y、Error message
1 绑定源路径不存在
Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /var/log/harbor/
解决
mkdir /var/log/harbor/
2 权限被拒绝
nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (13: Permission denied)
解决
## -^-
Z、Related Links
Installing Docker-20.10.12 on CentOS 7.9:https://www.cnblogs.com/huaxiayuyi/p/16775236.html
Installing docker on openEuler:https://www.cnblogs.com/huaxiayuyi/p/16894371.html
Installing docker-compose on CentOS 7.9:https://www.cnblogs.com/huaxiayuyi/p/16775728.html
Installing harbor-2.6.2 on CentOS 8.3:https://www.cnblogs.com/huaxiayuyi/p/16894018.html