系统版本:CentOS Linux release 7.6.1810 (Core)
docker版本:20.10.12
docker-compose版本:v2.3.2
把在百度网盘下载的docker-compose文件到服务器里
[root@zabbix 14:57:42~]# chmod +x docker-compose-linux-x86_64 [root@zabbix 14:57:48~]# mv docker-compose-linux-x86_64 /usr/local/sbin/docker-compose
1、上传在百度网盘下载的harbor压缩包文件到服务器里:
[root@zabbix 14:58:29/data/recycle]# ll total 1237904 -rw-r--r-- 1 root root 612698835 Mar 9 14:59 harbor-offline-installer-v2.4.1.tgz [root@zabbix 14:59:20/data/recycle]#
2、解压harbor:
[root@zabbix 14:59:20/data/recycle]# tar zxf harbor-offline-installer-v2.4.1.tgz [root@zabbix 14:59:30/data/recycle]# ll total 1237908 drwxr-xr-x 2 root root 4096 Mar 9 14:59 harbor -rw-r--r-- 1 root root 612698835 Mar 9 14:59 harbor-offline-installer-v2.4.1.tgz
3、移动到部署目录:
[root@zabbix 14:59:47/data/recycle]# mv harbor /data/software/ [root@zabbix 14:59:54/data/recycle]# cd /data/software/harbor/ [root@zabbix 15:00:00/data/software/harbor]# ll total 601612 -rw-r--r-- 1 root root 3361 Dec 16 12:22 common.sh -rw-r--r-- 1 root root 616006217 Dec 16 12:23 harbor.v2.4.1.tar.gz -rw-r--r-- 1 root root 8999 Dec 16 12:22 harbor.yml.tmpl -rwxr-xr-x 1 root root 2500 Dec 16 12:22 install.sh -rw-r--r-- 1 root root 11347 Dec 16 12:22 LICENSE -rwxr-xr-x 1 root root 1881 Dec 16 12:22 prepare
4、修改配置文件
[root@zabbix 15:00:06/data/software/harbor]# cp harbor.yml.tmpl harbor.yml
vim harbor.yml
5、修改daemon,并添加http的通信地址,不然docker默认使用https进行通信,如果配置了https协议就不需要添加
## 如果不修改,可能会碰到如下错误,只是不一定 ## [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd".
[root@zabbix 16:08:52/data/software/harbor]# cat /etc/docker/daemon.json { "registry-mirrors": ["https://nr240upq.mirror.aliyuncs.com", "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": ["172.17.0.100:5000"] } [root@zabbix 16:16:59/data/software/harbor]#
改好之后,重新加载配置和重启docker
[root@zabbix 15:00:50/data/software/harbor]# systemctl daemon-reload && systemctl restart docker
6、执行部署脚本:./install.sh
[root@zabbix 15:03:56/data/software/harbor]# ./install.sh [Step 0]: checking if docker is installed ... Note: docker version: 20.10.12 [Step 1]: checking docker-compose is installed ... Note: docker-compose version: 2.3.2 [Step 2]: loading Harbor images ... 1e3f0dc884e2: Loading layer [==================================================>] 39.45MB/39.45MB 3fd9ccd5eeaa: Loading layer [==================================================>] 5.275MB/5.275MB c600bceee2f7: Loading layer [==================================================>] 4.096kB/4.096kB 724cd8711815: Loading layer [==================================================>] 3.072kB/3.072kB d7c82a981c89: Loading layer [==================================================>] 17.32MB/17.32MB a814341c2c44: Loading layer [==================================================>] 18.12MB/18.12MB Loaded image: goharbor/registry-photon:v2.4.1 b00595b6932d: Loading layer [==================================================>] 5.27MB/5.27MB e34892d856ce: Loading layer [==================================================>] 5.928MB/5.928MB ac5a22c6047d: Loading layer [==================================================>] 14.47MB/14.47MB 3d1ac12eb215: Loading layer [==================================================>] 29.29MB/29.29MB 394b4b2ea0fa: Loading layer [==================================================>] 22.02kB/22.02kB bb0deb7416e0: Loading layer [==================================================>] 14.47MB/14.47MB Loaded image: goharbor/notary-signer-photon:v2.4.1 c3b02aec560c: Loading layer [==================================================>] 8.422MB/8.422MB 4d5b3acd128e: Loading layer [==================================================>] 3.584kB/3.584kB 7afbf44c3706: Loading layer [==================================================>] 2.56kB/2.56kB 31f95ac6eb9a: Loading layer [==================================================>] 75.59MB/75.59MB 8981a12f5c17: Loading layer [==================================================>] 5.632kB/5.632kB 16eb0821dcc3: Loading layer [==================================================>] 96.26kB/96.26kB b19eba29a0de: Loading layer [==================================================>] 11.78kB/11.78kB f0785d2e9965: Loading layer [==================================================>] 76.49MB/76.49MB 26ce29b9d7ab: Loading layer [==================================================>] 2.56kB/2.56kB Loaded image: goharbor/harbor-core:v2.4.1 59e3814aa5f1: Loading layer [==================================================>] 119.8MB/119.8MB 1e99e9cd580e: Loading layer [==================================================>] 3.072kB/3.072kB 2bab205001c7: Loading layer [==================================================>] 59.9kB/59.9kB c51450af480c: Loading layer [==================================================>] 61.95kB/61.95kB Loaded image: goharbor/redis-photon:v2.4.1 3636ff090145: Loading layer [==================================================>] 8.421MB/8.421MB fa3d57c372c8: Loading layer [==================================================>] 3.584kB/3.584kB a2c97825dcbf: Loading layer [==================================================>] 2.56kB/2.56kB 366b1363b528: Loading layer [==================================================>] 86.95MB/86.95MB 3d2fd6d13a0f: Loading layer [==================================================>] 87.74MB/87.74MB Loaded image: goharbor/harbor-jobservice:v2.4.1 8f71cf8bc1c6: Loading layer [==================================================>] 5.275MB/5.275MB 5cb3457d8e25: Loading layer [==================================================>] 4.096kB/4.096kB 02c18fad9dc6: Loading layer [==================================================>] 17.32MB/17.32MB 7bbcea1ec44e: Loading layer [==================================================>] 3.072kB/3.072kB f2842e1ada70: Loading layer [==================================================>] 28.69MB/28.69MB 4665575c3f9e: Loading layer [==================================================>] 46.81MB/46.81MB Loaded image: goharbor/harbor-registryctl:v2.4.1 439595cfbbc0: Loading layer [==================================================>] 7.192MB/7.192MB Loaded image: goharbor/nginx-photon:v2.4.1 a19de03ace6b: Loading layer [==================================================>] 5.27MB/5.27MB 35bbd4cf35b6: Loading layer [==================================================>] 5.928MB/5.928MB 88f852ebd746: Loading layer [==================================================>] 15.88MB/15.88MB e3c0db81a28c: Loading layer [==================================================>] 29.29MB/29.29MB f74e521b7a55: Loading layer [==================================================>] 22.02kB/22.02kB 7d97a705f439: Loading layer [==================================================>] 15.88MB/15.88MB Loaded image: goharbor/notary-server-photon:v2.4.1 1e6473070b18: Loading layer [==================================================>] 124MB/124MB f05c1a477d2d: Loading layer [==================================================>] 3.584kB/3.584kB bcab3e00aa98: Loading layer [==================================================>] 3.072kB/3.072kB 970d569f474a: Loading layer [==================================================>] 2.56kB/2.56kB c659c9812277: Loading layer [==================================================>] 3.072kB/3.072kB 9d401ff8bf07: Loading layer [==================================================>] 3.584kB/3.584kB 968dfed00d2e: Loading layer [==================================================>] 19.97kB/19.97kB Loaded image: goharbor/harbor-log:v2.4.1 b64000a1cd2c: Loading layer [==================================================>] 1.097MB/1.097MB e3fb7ac15701: Loading layer [==================================================>] 5.889MB/5.889MB d6e7f8008582: Loading layer [==================================================>] 165.9MB/165.9MB eff0812a8c6f: Loading layer [==================================================>] 15.07MB/15.07MB 91a6abd7a540: Loading layer [==================================================>] 4.096kB/4.096kB 47e875926154: Loading layer [==================================================>] 6.144kB/6.144kB 04876e025d4a: Loading layer [==================================================>] 3.072kB/3.072kB b817a88114e6: Loading layer [==================================================>] 2.048kB/2.048kB e5fb37021dff: Loading layer [==================================================>] 2.56kB/2.56kB 767486d5c318: Loading layer [==================================================>] 2.56kB/2.56kB b92f2b842b46: Loading layer [==================================================>] 2.56kB/2.56kB e90e3a7ea4e9: Loading layer [==================================================>] 8.704kB/8.704kB Loaded image: goharbor/harbor-db:v2.4.1 daf3d38cddc8: Loading layer [==================================================>] 8.422MB/8.422MB 8013b2cbc0b9: Loading layer [==================================================>] 18.13MB/18.13MB 4445f5ea7083: Loading layer [==================================================>] 4.608kB/4.608kB 32e035f0af8e: Loading layer [==================================================>] 18.93MB/18.93MB Loaded image: goharbor/harbor-exporter:v2.4.1 0ad72e88d766: Loading layer [==================================================>] 8.54MB/8.54MB fe195f48d47b: Loading layer [==================================================>] 4.096kB/4.096kB 71f2671db231: Loading layer [==================================================>] 3.072kB/3.072kB ddda0b4a8eae: Loading layer [==================================================>] 39.27MB/39.27MB c3fe76027866: Loading layer [==================================================>] 12.37MB/12.37MB d82a7403c39a: Loading layer [==================================================>] 52.43MB/52.43MB Loaded image: goharbor/trivy-adapter-photon:v2.4.1 03e449493f09: Loading layer [==================================================>] 5.275MB/5.275MB 4f4a25c7cc0d: Loading layer [==================================================>] 64.5MB/64.5MB 77a37df05436: Loading layer [==================================================>] 3.072kB/3.072kB 47c58e48962d: Loading layer [==================================================>] 4.096kB/4.096kB 5dd56c28f3fc: Loading layer [==================================================>] 65.29MB/65.29MB Loaded image: goharbor/chartmuseum-photon:v2.4.1 8b7cbddd8918: Loading layer [==================================================>] 165.6MB/165.6MB b8157b6f7cb8: Loading layer [==================================================>] 57.6MB/57.6MB 4a53b9a92b30: Loading layer [==================================================>] 2.56kB/2.56kB 59184fc56c3c: Loading layer [==================================================>] 1.536kB/1.536kB 99431fe2c10f: Loading layer [==================================================>] 12.29kB/12.29kB 3735b7f4881f: Loading layer [==================================================>] 2.62MB/2.62MB bcff3633b236: Loading layer [==================================================>] 325.6kB/325.6kB Loaded image: goharbor/prepare:v2.4.1 eb57d0945b2e: Loading layer [==================================================>] 7.192MB/7.192MB dd9069fd53a8: Loading layer [==================================================>] 7.355MB/7.355MB e779dab1d180: Loading layer [==================================================>] 1.754MB/1.754MB Loaded image: goharbor/harbor-portal:v2.4.1 [Step 3]: preparing environment ... [Step 4]: preparing harbor configs ... prepare base dir is set to /data/software/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 ... [+] Running 10/10 ? Network harbor_harbor Created 0.0s ? Container harbor-log Started 0.6s ? Container redis Started 1.3s ? Container registryctl Started 1.4s ? Container registry Started 1.4s ? Container harbor-db Started 1.4s ? Container harbor-portal Started 1.3s ? Container harbor-core Started 1.7s ? Container harbor-jobservice Started 2.3s ? Container nginx Started 2.4s ? ----Harbor has been installed and started successfully.---- [root@zabbix 15:04:47/data/software/harbor]#
7、配置开机自启:
/usr/local/sbin/docker-compose -f /data/software/harbor/docker-compose.yml up -d
8、设置权限
chmod +x /etc/rc.local /etc/rc.d/rc.local
9、尝试登陆harbor
10、命令行登陆
[root@zabbix 15:08:00/data/software/harbor]# docker login 172.17.0.100:5000 Username: admin Password: Login Succeeded [root@zabbix 15:08:57/data/software/harbor]#
1、新建一个项目目录:
2、我以nginx为例进行推送到harbor上:
[root@zabbix 16:45:33/data/software/harbor]# docker image ls | grep nginx nginx latest 605c77e624dd 2 months ago 141MB goharbor/nginx-photon v2.4.1 78aad8c8ef41 2 months ago 45.7MB [root@zabbix 16:45:42/data/software/harbor]# docker tag nginx:latest 172.17.0.100:5000/test/nginx1.8:v1 [root@zabbix 16:59:00/data/software/harbor]# docker image ls | grep nginx 172.17.0.100:5000/test/nginx1.8 v1 605c77e624dd 2 months ago 141MB nginx latest 605c77e624dd 2 months ago 141MB goharbor/nginx-photon v2.4.1 78aad8c8ef41 2 months ago 45.7MB [root@zabbix 16:59:04/data/software/harbor]# docker push 172.17.0.100:5000/test/nginx1.8:v1 The push refers to repository [172.17.0.100:5000/test/nginx1.8] d874fd2bc83b: Pushed 32ce5f6a5106: Pushed f1db227348d0: Pushed b8d6e692a25e: Pushed e379e8aedd4d: Pushed 2edcec3590a4: Pushed v1: digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3 size: 1570 [root@zabbix 16:59:25/data/software/harbor]#
3、查看镜像仓库,可以看到多了一个镜像
4、镜像拉取(镜像下载)
[root@zabbix 16:59:25/data/software/harbor]# docker image rm 172.17.0.100:5000/test/nginx1.8:v1 Untagged: 172.17.0.100:5000/test/nginx1.8:v1 Untagged: 172.17.0.100:5000/test/nginx1.8@sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3 [root@zabbix 17:01:15/data/software/harbor]# docker image ls | grep nginx nginx latest 605c77e624dd 2 months ago 141MB goharbor/nginx-photon v2.4.1 78aad8c8ef41 2 months ago 45.7MB [root@zabbix 17:02:07/data/software/harbor]# docker pull 172.17.0.100:5000/test/nginx1.8:v1 v1: Pulling from test/nginx1.8 Digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3 Status: Downloaded newer image for 172.17.0.100:5000/test/nginx1.8:v1 172.17.0.100:5000/test/nginx1.8:v1 [root@zabbix 17:02:12/data/software/harbor]# docker image ls | grep nginx 172.17.0.100:5000/test/nginx1.8 v1 605c77e624dd 2 months ago 141MB nginx latest 605c77e624dd 2 months ago 141MB goharbor/nginx-photon v2.4.1 78aad8c8ef41 2 months ago 45.7MB [root@zabbix 17:02:16/data/software/harbor]#
至此,harbor部署完毕
1、如果以后修改了harbor.yml文件,那么先停止使用docker-compose down,再去修改harbor.yml文件,重新启动部署 ./install.sh
2、正常启动harbor启动:
docker-compose up -d
3、未修改配置文件,重启Harbor命令:docker-compose start | stop | restart