Docker Harbor
https://github.com/goharbor/harbor
1、安装要求
1.1、硬件
资源 | 最低配置 | 推荐配置 |
---|---|---|
CPU | 2 CPU | 4 CPU |
内存 | 4G | 8G |
硬盘 | 40GB | 160GB |
1.2、软件
软件 | 版本 |
---|---|
Docker engine | 版本17.06.0-ce+或更 |
Docker Compose | 版本1.18.0或更高 |
Openssl | 最好是最新的 |
1.3、端口
端口| 协议
—|—|—
443 | HTTPS
4443| HTTPS
80| HTTP
1.4、版本
v2.1.3
2、下载Docker Harbor
2.1、下载
https://github.com/goharbor/harbor/releases
下载文件包括在线安装和离线安装两个版本,安装流程基本上一样。离线版本用于安装服务器无法连接网络的情况。
2.2、解压
tar xvf harbor-offline-installer-v2.1.3.tgz
3、安装docker-compose
3.1、下载
https://github.com/docker/compose/releases
3.2、配置
cp docker-compose-Linux-x86_64 /usr/local/sbin/docker-compose
3.3、授权
sudo chmod +x /usr/local/sbin/docker-compose
3.4、验证
[root@localhost sbin]# docker-compose version
docker-compose version 1.28.5, build c4eb3a1f
docker-py version: 4.4.4
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
4、配置harbor.yml
4.1、复制文件
cp harbor.yml.tmpl harbor.yml
4.2、修改配置信息
# 修改IP信息
hostname: 127.0.0.1
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
# 修改端口信息
port: 80
# 注释掉https相关信息
# https related config
https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
certificate: /data/cert/127.0.0.1.pem
private_key: /data/cert/127.0.0.1.key
# Uncomment external_url if you want to enable external proxy
# And when it enabled the hostname will no longer used
external_url: https://127.0.0.1:4443
本次HTTPS证书使用阿里云免费证书
5、运行安装脚本
[root@localhost harbor]# sh install.sh
[Step 0]: checking if docker is installed ...
Note: docker version: 19.03.9
[Step 1]: checking docker-compose is installed ...
Note: docker-compose version: 1.28.5
[Step 2]: loading Harbor images ...
72021dc640d8: Loading layer [==================================================>] 34.51MB/34.51MB
ac18f6a923ed: Loading layer [==================================================>] 6.237MB/6.237MB
443e718caf06: Loading layer [==================================================>] 4.096kB/4.096kB
151d94acadb3: Loading layer [==================================================>] 3.072kB/3.072kB
a4b49bb1e114: Loading layer [==================================================>] 23.51MB/23.51MB
c78521954d03: Loading layer [==================================================>] 13.03MB/13.03MB
0c47889bec53: Loading layer [==================================================>] 37.36MB/37.36MB
Loaded image: goharbor/trivy-adapter-photon:v2.1.3
03d035e6fdd6: Loading layer [==================================================>] 77.47MB/77.47MB
17378e897238: Loading layer [==================================================>] 56.14MB/56.14MB
37e0db793f9a: Loading layer [==================================================>] 2.56kB/2.56kB
f2b1c8e30fee: Loading layer [==================================================>] 1.536kB/1.536kB
9bdf41331535: Loading layer [==================================================>] 18.43kB/18.43kB
ba870a8f8b07: Loading layer [==================================================>] 4.044MB/4.044MB
c9c3cbc34878: Loading layer [==================================================>] 266.2kB/266.2kB
Loaded image: goharbor/prepare:v2.1.3
63466623017f: Loading layer [==================================================>] 74.89MB/74.89MB
df442b800e1e: Loading layer [==================================================>] 3.584kB/3.584kB
452e97ba3502: Loading layer [==================================================>] 3.072kB/3.072kB
c471bd98cbb5: Loading layer [==================================================>] 2.56kB/2.56kB
17fddea06fe1: Loading layer [==================================================>] 3.072kB/3.072kB
475fc394c201: Loading layer [==================================================>] 3.584kB/3.584kB
933a98d9fbe2: Loading layer [==================================================>] 12.29kB/12.29kB
a763d912993b: Loading layer [==================================================>] 3.584kB/3.584kB
Loaded image: goharbor/harbor-log:v2.1.3
c4362766d017: Loading layer [==================================================>] 35.94MB/35.94MB
2a17b1bfc06e: Loading layer [==================================================>] 3.072kB/3.072kB
18f95416e6ca: Loading layer [==================================================>] 59.9kB/59.9kB
66e00c38ca7a: Loading layer [==================================================>] 61.95kB/61.95kB
Loaded image: goharbor/redis-photon:v2.1.3
e7ecd452926a: Loading layer [==================================================>] 6.779MB/6.779MB
Loaded image: goharbor/nginx-photon:v2.1.3
b297dbe84e45: Loading layer [==================================================>] 4.926MB/4.926MB
740cb9327cf8: Loading layer [==================================================>] 6.364MB/6.364MB
702e21d9a02a: Loading layer [==================================================>] 14.45MB/14.45MB
41bf73d5edf7: Loading layer [==================================================>] 27.98MB/27.98MB
380c69145954: Loading layer [==================================================>] 22.02kB/22.02kB
8e8d77f973be: Loading layer [==================================================>] 14.45MB/14.45MB
Loaded image: goharbor/notary-signer-photon:v2.1.3
1e8793fa6411: Loading layer [==================================================>] 111.8MB/111.8MB
46f05a34c35a: Loading layer [==================================================>] 12.6MB/12.6MB
2b4935d92967: Loading layer [==================================================>] 3.072kB/3.072kB
53d92caec796: Loading layer [==================================================>] 49.15kB/49.15kB
755503f08c76: Loading layer [==================================================>] 4.096kB/4.096kB
47f4a1c04d3e: Loading layer [==================================================>] 13.47MB/13.47MB
Loaded image: goharbor/clair-photon:v2.1.3
5b519183d61a: Loading layer [==================================================>] 6.779MB/6.779MB
495ec8d8cbc6: Loading layer [==================================================>] 8.993MB/8.993MB
63afd0d6ec10: Loading layer [==================================================>] 173.6kB/173.6kB
09ec33f4b9b5: Loading layer [==================================================>] 152.6kB/152.6kB
044c3f5dda03: Loading layer [==================================================>] 66.56kB/66.56kB
7f8575cc2f03: Loading layer [==================================================>] 17.41kB/17.41kB
fe198ec7df1d: Loading layer [==================================================>] 15.36kB/15.36kB
Loaded image: goharbor/harbor-portal:v2.1.3
d3f717b5d596: Loading layer [==================================================>] 8.072MB/8.072MB
c8ee2f4f6699: Loading layer [==================================================>] 3.584kB/3.584kB
cfd1bf008a6d: Loading layer [==================================================>] 2.56kB/2.56kB
8e5472b7ed8e: Loading layer [==================================================>] 54.29MB/54.29MB
1db003052be5: Loading layer [==================================================>] 5.632kB/5.632kB
0231f7ea2d72: Loading layer [==================================================>] 60.42kB/60.42kB
30adb3e2679a: Loading layer [==================================================>] 11.78kB/11.78kB
3e996609c673: Loading layer [==================================================>] 55.11MB/55.11MB
5a263b512f9b: Loading layer [==================================================>] 2.56kB/2.56kB
Loaded image: goharbor/harbor-core:v2.1.3
4ab370c63b3e: Loading layer [==================================================>] 4.933MB/4.933MB
975554788330: Loading layer [==================================================>] 4.096kB/4.096kB
f5b3cc09bcd8: Loading layer [==================================================>] 20.52MB/20.52MB
b0d97cd18eaa: Loading layer [==================================================>] 3.072kB/3.072kB
8c151b2c13a1: Loading layer [==================================================>] 25.91MB/25.91MB
46141b0f7c27: Loading layer [==================================================>] 47.24MB/47.24MB
Loaded image: goharbor/harbor-registryctl:v2.1.3
f7a5d87c04ff: Loading layer [==================================================>] 4.933MB/4.933MB
c1039e70b721: Loading layer [==================================================>] 4.096kB/4.096kB
cd55b5894269: Loading layer [==================================================>] 3.072kB/3.072kB
e24bd6c19f05: Loading layer [==================================================>] 20.52MB/20.52MB
059fdb11b68d: Loading layer [==================================================>] 21.34MB/21.34MB
Loaded image: goharbor/registry-photon:v2.1.3
a9cfe4782868: Loading layer [==================================================>] 4.932MB/4.932MB
162006658ae1: Loading layer [==================================================>] 66.44MB/66.44MB
6d5f2cc77950: Loading layer [==================================================>] 3.072kB/3.072kB
6816015fc840: Loading layer [==================================================>] 4.096kB/4.096kB
e4c3d5662925: Loading layer [==================================================>] 67.27MB/67.27MB
Loaded image: goharbor/chartmuseum-photon:v2.1.3
eda39f992504: Loading layer [==================================================>] 63.76MB/63.76MB
c7c394f98360: Loading layer [==================================================>] 78.31MB/78.31MB
0b11b6716b75: Loading layer [==================================================>] 6.144kB/6.144kB
480b5d61510d: Loading layer [==================================================>] 2.56kB/2.56kB
3ecace3c592e: Loading layer [==================================================>] 2.56kB/2.56kB
dbbf26bda64a: Loading layer [==================================================>] 2.56kB/2.56kB
df1508a63326: Loading layer [==================================================>] 2.56kB/2.56kB
8038a87c58d7: Loading layer [==================================================>] 11.26kB/11.26kB
Loaded image: goharbor/harbor-db:v2.1.3
8a27b2778538: Loading layer [==================================================>] 8.071MB/8.071MB
2fe3f1b054fd: Loading layer [==================================================>] 3.584kB/3.584kB
3b9bcd275166: Loading layer [==================================================>] 2.56kB/2.56kB
4fffc560d75a: Loading layer [==================================================>] 63.96MB/63.96MB
d611dea267cc: Loading layer [==================================================>] 64.79MB/64.79MB
Loaded image: goharbor/harbor-jobservice:v2.1.3
ee9b7dd248e7: Loading layer [==================================================>] 4.926MB/4.926MB
0aa357fcc019: Loading layer [==================================================>] 6.364MB/6.364MB
2ac0e6fa0264: Loading layer [==================================================>] 15.85MB/15.85MB
3b0b24bd5046: Loading layer [==================================================>] 27.98MB/27.98MB
e1dfc9702755: Loading layer [==================================================>] 22.02kB/22.02kB
2059a87ed2d1: Loading layer [==================================================>] 15.85MB/15.85MB
Loaded image: goharbor/notary-server-photon:v2.1.3
608d2a651494: Loading layer [==================================================>] 4.933MB/4.933MB
5cf58e1bb720: Loading layer [==================================================>] 4.096kB/4.096kB
ad914f98210d: Loading layer [==================================================>] 3.072kB/3.072kB
39894ca7b73a: Loading layer [==================================================>] 13.01MB/13.01MB
2139b6d15c37: Loading layer [==================================================>] 13.83MB/13.83MB
Loaded image: goharbor/clair-adapter-photon:v2.1.3
[Step 3]: preparing environment ...
[Step 4]: preparing harbor configs ...
prepare base dir is set to /opt/itmrl/docker/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
[Step 5]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-portal ... done
Creating registry ... done
Creating registryctl ... done
Creating redis ... done
Creating harbor-db ... done
Creating harbor-core ... done
Creating harbor-jobservice ... done
Creating nginx ... done
✔ ----Harbor has been installed and started successfully.----
6、访问Harbor地址
# 默认账号/密码 admin/Harbor12345
http://172.16.90.29
7、配置/etc/docker/daemon.json
vi /etc/docker/daemon.json
{
"insecure-registries": ["172.16.90.29"]
}
8、重启docker
systemctl restart docker
9、登录Harbor仓库
[root@localhost test_dockerfile]# docker login 172.16.90.29
Username: admin
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
10、标记本地镜像,归入仓库
docker tag 4a97d3158956 172.16.90.29/library/helloworld:1.0.0
11、推送镜像到Harbor仓库
[root@localhost test_dockerfile]# docker push 172.16.90.29/library/helloworld:1.0.0
The push refers to repository [172.16.90.29/library/helloworld]
7ecd0eab9c73: Pushed
35c20f26d188: Pushed
c3fe59dd9556: Pushed
6ed1a81ba5b6: Pushed
a3483ce177ce: Pushed
ce6c8756685b: Pushed
30339f20ced0: Pushed
0eb22bfb707d: Pushed
a2ae92ffcd29: Pushed
1.0.0: digest: sha256:74ed6579c9e1e874fe73da2a50e1b0e15dc78a67de533aa0c39facf3bfbba296 size: 2212
12、Harbor启动、停止脚本
docker-compose up -d 启动
docker-compose stop 停止
docker-compose restart 重新启动