一、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. |
二、离线安装 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"
],
"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
8 命令行登陆 docker
docker info
docker login 114.116...:8084
三、测试上传和下载
1 harbor创建项目
项目--->新建项目--->项目名称--->镜像仓库
2 对需要推送的镜像签名
docker pull tomcat
docker images
docker tag tomcat:latest 114.116...:8084/iyuyixyz/tomcat:latest
docker push 114.116...:8084/iyuyixyz/tomcat:latest
推送成功!
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