下载
https://github.com/goharbor/harbor/tags
2.6版本官方文档
https://goharbor.io/docs/2.6.0/
docker-compose下载
https://github.com/docker/compose/releases/
安装
官方配置要求
硬件要求
Resource | Minimum | Recommended |
---|---|---|
CPU | 2 CPU | 4 CPU |
Mem | 4 GB | 8 GB |
Disk | 40 GB | 160 GB |
软件要求
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 |
- 因harbor依赖于docker-compose所以要先安装
- 先拷贝docker-compose到指定目录,加执行权限
- docker-compose版本是1.26.0
- 必须先安装docker
docker-compose安装
mv docker-compose-Linux-x86_64-1.26.0 /usr/bin/docker-compose
chmod a+x /usr/bin/docker-compose
harbor安装
解压harbor包,进行安装即可
tar -zxvf harbor-offline-installer-v2.0.0.tgz
cd harbor/
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
修改三处
1.修改IP地址,如果有域名用域名也行
2.修改端口,默认是80,根据实际情况修改
3.如果没有证书把相关的https,全部注释掉
4.修改密码 harbor_admin_password: wj123456
hostname: 10.138.238.37
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 18080
# https related config
#https:
# https port for harbor, default is 443
# port: 443
# The path of cert and key files for nginx
#certificate: /your/certificate/path
#private_key: /your/private/key/path
初始化配置文件
[root@wj-7 harbor]# ./prepare #在内网或者电脑无法连接公网,可以不做
安装,默认是启动的
[root@wj-7 harbor]# ./install.sh
[Step 0]: checking if docker is installed ...
Note: docker version: 19.03.15
[Step 1]: checking docker-compose is installed ...
Note: docker-compose version: 1.26.0
[Step 2]: loading Harbor images ...
dbaf2c918102: Loading layer [==================================================>] 34.5MB/34.5MB
1f3458bb7308: Loading layer [==================================================>] 8.435MB/8.435MB
74e91bd5ca15: Loading layer [==================================================>] 6.317MB/6.317MB
82da861dccd3: Loading layer [==================================================>] 14.61MB/14.61MB
8d62f2bfdf94: Loading layer [==================================================>] 28.25MB/28.25MB
40510e398799: Loading layer [==================================================>] 22.02kB/22.02kB
6941a908d292: Loading layer [==================================================>] 49.17MB/49.17MB
Loaded image: goharbor/notary-signer-photon:v2.0.0
bd70463b9e5a: Loading layer [==================================================>] 8.441MB/8.441MB
d3927e3c53ea: Loading layer [==================================================>] 3.584kB/3.584kB
a3b2acbb8f7d: Loading layer [==================================================>] 3.072kB/3.072kB
de14f7f144ce: Loading layer [==================================================>] 9.71MB/9.71MB
94c03f31b276: Loading layer [==================================================>] 10.53MB/10.53MB
Loaded image: goharbor/clair-adapter-photon:v2.0.0
935e17d700d1: Loading layer [==================================================>] 8.44MB/8.44MB
eef8d67e9248: Loading layer [==================================================>] 42.3MB/42.3MB
a181769f3c52: Loading layer [==================================================>] 3.072kB/3.072kB
4b801e4d76d7: Loading layer [==================================================>] 3.584kB/3.584kB
7f7c81a33722: Loading layer [==================================================>] 43.12MB/43.12MB
Loaded image: goharbor/chartmuseum-photon:v2.0.0
4076b322e7f5: Loading layer [==================================================>] 49.89MB/49.89MB
da16bbe3a170: Loading layer [==================================================>] 3.584kB/3.584kB
f8967a1d9155: Loading layer [==================================================>] 3.072kB/3.072kB
6b7eaf984fde: Loading layer [==================================================>] 2.56kB/2.56kB
4406aea83cb2: Loading layer [==================================================>] 3.072kB/3.072kB
78566a971bf2: Loading layer [==================================================>] 3.584kB/3.584kB
e4e05e2ffdad: Loading layer [==================================================>] 12.29kB/12.29kB
f3bcf1de026d: Loading layer [==================================================>] 5.632kB/5.632kB
Loaded image: goharbor/harbor-log:v2.0.0
101133a0a2e6: Loading layer [==================================================>] 8.441MB/8.441MB
40eb3ab360dd: Loading layer [==================================================>] 3.584kB/3.584kB
172ace267ace: Loading layer [==================================================>] 20.94MB/20.94MB
cb361129c579: Loading layer [==================================================>] 3.072kB/3.072kB
f0221c34f9dc: Loading layer [==================================================>] 8.721MB/8.721MB
1880cedc9407: Loading layer [==================================================>] 30.48MB/30.48MB
Loaded image: goharbor/harbor-registryctl:v2.0.0
15f399ca8b42: Loading layer [==================================================>] 8.441MB/8.441MB
182251d62618: Loading layer [==================================================>] 3.584kB/3.584kB
c72ce5e8bba9: Loading layer [==================================================>] 3.072kB/3.072kB
6cb620513867: Loading layer [==================================================>] 20.94MB/20.94MB
8f68617c13e6: Loading layer [==================================================>] 21.76MB/21.76MB
Loaded image: goharbor/registry-photon:v2.0.0
464d98f962d2: Loading layer [==================================================>] 115.2MB/115.2MB
6f577ce93b49: Loading layer [==================================================>] 12.15MB/12.15MB
468b747374fb: Loading layer [==================================================>] 3.072kB/3.072kB
c7d4e40274a2: Loading layer [==================================================>] 49.15kB/49.15kB
349c2528bf8f: Loading layer [==================================================>] 3.584kB/3.584kB
50765adb1994: Loading layer [==================================================>] 13.03MB/13.03MB
Loaded image: goharbor/clair-photon:v2.0.0
f3ae9281f64f: Loading layer [==================================================>] 16.04MB/16.04MB
79de921bba64: Loading layer [==================================================>] 28.25MB/28.25MB
a4826ccd0680: Loading layer [==================================================>] 22.02kB/22.02kB
527c0492bb8a: Loading layer [==================================================>] 50.6MB/50.6MB
Loaded image: goharbor/notary-server-photon:v2.0.0
da380ff7675f: Loading layer [==================================================>] 39.44MB/39.44MB
3e72063a3c12: Loading layer [==================================================>] 3.072kB/3.072kB
87063a362784: Loading layer [==================================================>] 59.9kB/59.9kB
12042912d563: Loading layer [==================================================>] 61.95kB/61.95kB
Loaded image: goharbor/redis-photon:v2.0.0
497d39fd8ed4: Loading layer [==================================================>] 10.28MB/10.28MB
Loaded image: goharbor/nginx-photon:v2.0.0
db89bcd4a7aa: Loading layer [==================================================>] 12.22MB/12.22MB
a3c69d8e6487: Loading layer [==================================================>] 3.072kB/3.072kB
22888c961e12: Loading layer [==================================================>] 2.56kB/2.56kB
15c04c0d67b3: Loading layer [==================================================>] 46.5MB/46.5MB
5e59e5738914: Loading layer [==================================================>] 5.632kB/5.632kB
2fb21742e876: Loading layer [==================================================>] 51.2kB/51.2kB
ebe005c22385: Loading layer [==================================================>] 47.32MB/47.32MB
e91a77a1cc5d: Loading layer [==================================================>] 2.56kB/2.56kB
Loaded image: goharbor/harbor-core:v2.0.0
c9ad3414e408: Loading layer [==================================================>] 63.57MB/63.57MB
0aea7ae12d77: Loading layer [==================================================>] 60.58MB/60.58MB
c3be2cda3349: Loading layer [==================================================>] 5.632kB/5.632kB
970c1e4372ae: Loading layer [==================================================>] 2.048kB/2.048kB
51e00ddbcdac: Loading layer [==================================================>] 2.56kB/2.56kB
27d44e884cd0: Loading layer [==================================================>] 2.56kB/2.56kB
3086c2ee0489: Loading layer [==================================================>] 2.56kB/2.56kB
efd18d9ef79c: Loading layer [==================================================>] 10.24kB/10.24kB
Loaded image: goharbor/harbor-db:v2.0.0
ad0a4ed99dd0: Loading layer [==================================================>] 12.22MB/12.22MB
50121125e459: Loading layer [==================================================>] 3.072kB/3.072kB
6d05b39a8c44: Loading layer [==================================================>] 2.56kB/2.56kB
5380ddc5210f: Loading layer [==================================================>] 35.68MB/35.68MB
e8053e60aee7: Loading layer [==================================================>] 36.5MB/36.5MB
Loaded image: goharbor/harbor-jobservice:v2.0.0
9fefe33a31db: Loading layer [==================================================>] 9.741MB/9.741MB
a52a9b417697: Loading layer [==================================================>] 3.584kB/3.584kB
9b6c54642038: Loading layer [==================================================>] 3.072kB/3.072kB
6a32c528face: Loading layer [==================================================>] 20.34MB/20.34MB
526552ecb5a3: Loading layer [==================================================>] 9.317MB/9.317MB
bc3e72205f25: Loading layer [==================================================>] 30.48MB/30.48MB
Loaded image: goharbor/trivy-adapter-photon:v2.0.0
51193d3ba093: Loading layer [==================================================>] 77.29MB/77.29MB
398b7c3413c0: Loading layer [==================================================>] 48.31MB/48.31MB
cb902b44bae6: Loading layer [==================================================>] 2.56kB/2.56kB
11d3bf655c22: Loading layer [==================================================>] 1.536kB/1.536kB
3d373d988076: Loading layer [==================================================>] 18.43kB/18.43kB
755d5115a4fd: Loading layer [==================================================>] 3.751MB/3.751MB
5d456b2e2b47: Loading layer [==================================================>] 249.3kB/249.3kB
Loaded image: goharbor/prepare:v2.0.0
2128feaae029: Loading layer [==================================================>] 10.28MB/10.28MB
c1e2c6faf4a4: Loading layer [==================================================>] 8.487MB/8.487MB
8728e424e45b: Loading layer [==================================================>] 178.7kB/178.7kB
243de4b81324: Loading layer [==================================================>] 157.2kB/157.2kB
1909dd7d54dc: Loading layer [==================================================>] 33.28kB/33.28kB
e91e103cac7d: Loading layer [==================================================>] 17.41kB/17.41kB
ef43ac036ce0: Loading layer [==================================================>] 15.36kB/15.36kB
3205feaa4e7b: Loading layer [==================================================>] 3.584kB/3.584kB
Loaded image: goharbor/harbor-portal:v2.0.0
[Step 3]: preparing environment ...
[Step 4]: preparing harbor configs ...
prepare base dir is set to /root/harbor2.0.0/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/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 redis ... done
Creating harbor-db ... done
Creating registry ... done
Creating registryctl ... done
Creating harbor-core ... done
Creating harbor-jobservice ... done
Creating nginx ... done
✔ ----Harbor has been installed and started successfully.----
登录地址
![图片[1]-harbor-秋风落叶](http://1.94.39.166/wp-content/uploads/2022/11/image-25.png)
默认账号密码
系统默认
admin Harbor12345
启停
#启动
/usr/bin/docker-compose -f /root/harbor/docker-compose.yml up -d
成功的日志
harbor-log is up-to-date
Starting harbor-portal ...
Starting harbor-portal ... done
Starting harbor-db ... done
Starting redis ... done
Starting registryctl ... done
Starting harbor-core ... done
harbor-jobservice is up-to-date
nginx is up-to-date
#停止
/usr/bin/docker-compose -f /root/harbor/docker-compose.yml stop
停止的日志
Stopping harbor-jobservice ... done
Stopping nginx ... done
Stopping harbor-core ... done
Stopping registryctl ... done
Stopping registry ... done
Stopping harbor-db ... done
Stopping redis ... done
Stopping harbor-portal ... done
Stopping harbor-log ... done
systemctl管理
vim /usr/lib/systemd/system/harbor.service
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/bin/docker-compose -f /root/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f /root/harbor/docker-compose.yml stop
[Install]
WantedBy=multi-user.target
卸载
卸载2.0版本
/usr/bin/docker-compose -f /root/harbor/docker-compose.yml stop
docker rmi -f 4db8d6aa63e9
docker rmi -f c89ea2e53cc0
docker rmi -f 6122c52b7e48
docker rmi -f dd2210cb7f53
docker rmi -f f7c7fcc52278
docker rmi -f 983ac10ed8be
docker rmi -f bee1b6d75e0d
docker rmi -f c53c32d58d04
docker rmi -f afdc1b7ada36
docker rmi -f 17892f03e56c
docker rmi -f 5f8ff08e795c
docker rmi -f c68a2495bf55
docker rmi -f 3aa3af64baf8
docker rmi -f e0b1d3c894c4
docker rmi -f 5c76f0296cec
docker rmi -f 7266d49995ed
rm -rf /var/log/harbor/
rm -rf /data
和docker集成
推送
先拉取一个镜像下来做试验用:
[root@localhost ~]# docker pull nginx:1.20
1.20: Pulling from library/nginx
a2abf6c4d29d: Pull complete
da03644a1293: Pull complete
dcbfc6badd70: Pull complete
3f7ccff97047: Pull complete
49e31097680b: Pull complete
c423e1dacb26: Pull complete
Digest: sha256:03f3cb0afb7bd5c76e01bfec0ce08803c495348dccce37bcb82c347b4853c00b
Status: Downloaded newer image for nginx:1.20
docker.io/library/nginx:1.20
推送之前要先登录 docker登陆harbor
docker login -uadmin -pwangjian 192.168.60.132:80
登出docker的命令:
docker logout
推送到harbor上,我这就使用了默认账号和默认项目
修改本机的docker配置文件并重启docker,注意重启docker前先重新加载配置文件
cat > /etc/docker/daemon.json <<EOF
{
"insecure-registries": ["192.168.60.132:80"]
}
EOF
# 重启docker
systemctl daemon-reload
systemctl restart docker
#重启docker就要重启harbor
给待推送的镜像打标记,打标记命令格式如下:
docker tag SOURCE_IMAGE[:TAG] 192.168.60.132/library/REPOSITORY[:TAG]
#推送
docker push 192.168.60.132/library/REPOSITORY[:TAG]
稍微解释下:
SOURCE_IMAGE[:TAG]表示当前docker已存在的某个版本的镜像
library表示的是harbor里头的某个项目名称,表示镜像推送给这个项目
注意,其中ip和端口都不要省(尤其在http协议里头)
比如我要推送nginx到harbor仓库,打的标记如下:
#标记
docker tag nginx:1.20 192.168.60.132:80/library/nginx:1.20
#推送
root@localhost ~]# docker push 192.168.60.132:80/library/nginx:1.20
The push refers to repository [192.168.60.132:80/library/nginx]
c75c795b7d44: Pushed
4e498ce5ae6a: Pushed
35437a3771fc: Pushed
108a6d6c3e60: Pushed
9ccbab2746b8: Pushed
2edcec3590a4: Pushed
1.20: digest: sha256:cba27ee29d62dfd6034994162e71c399b08a84b50ab25783eabce64b1907f774 size: 1570
拉取
docker pull 192.168.60.132:80/library/nginx:1.20
启动一个容器
docker run -d -p 88:80 192.168.60.132:80/library/nginx:1.20
查看启动了多少服务
docker-compose ps
/usr/bin/docker-compose -f /root/harbor/docker-compose.yml ps
导入k8s-1.23镜像到仓库
#原镜像信息
registry.aliyuncs.com/google_containers/kube-apiserver v1.23.0 e6bf5ddd4098 11 months ago 135MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.23.0 37c6aeb3663b 11 months ago 125MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.23.0 56c5af1d00b5 11 months ago 53.5MB
registry.aliyuncs.com/google_containers/kube-proxy v1.23.0 e03484a90585 11 months ago 112MB
registry.aliyuncs.com/google_containers/etcd 3.5.1-0 25f8c7f3da61 12 months ago 293MB
registry.aliyuncs.com/google_containers/coredns v1.8.6 a4ca41631cc7 13 months ago 46.8MB
registry.aliyuncs.com/google_containers/pause 3.6 6270bb605e12 15 months ago 683kB
#打标签
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.0 192.168.60.132:80/library/kube-apiserver:v1.23.0
docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.23.0 192.168.60.132:80/library/kube-controller-manager:v1.23.0
docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.23.0 192.168.60.132:80/library/kube-scheduler:v1.23.0
docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.23.0 192.168.60.132:80/library/kube-proxy:v1.23.0
docker tag registry.aliyuncs.com/google_containers/etcd:3.5.1-0 192.168.60.132:80/library/etcd:3.5.1-0
docker tag registry.aliyuncs.com/google_containers/coredns:v1.8.6 192.168.60.132:80/library/coredns:v1.8.6
docker tag registry.aliyuncs.com/google_containers/pause:3.6 192.168.60.132:80/library/pause:3.6
#推送
docker push 192.168.60.132:80/library/kube-apiserver:v1.23.0
docker push 192.168.60.132:80/library/kube-controller-manager:v1.23.0
docker push 192.168.60.132:80/library/kube-scheduler:v1.23.0
docker push 192.168.60.132:80/library/kube-proxy:v1.23.0
docker push 192.168.60.132:80/library/etcd:3.5.1-0
docker push 192.168.60.132:80/library/coredns:v1.8.6
docker push 192.168.60.132:80/library/pause:3.6
导入calico到harbor
docker login -uadmin -pwangjian 192.168.60.132:80
#打标签
docker tag calico/node:v3.20.0 192.168.60.132:80/library/node:v3.20.0
docker tag calico/pod2daemon-flexvol:v3.20.0 192.168.60.132:80/library/pod2daemon-flexvol:v3.20.0
docker tag calico/cni:v3.20.0 192.168.60.132:80/library/cni:v3.20.0
docker tag calico/kube-controllers:v3.20.0 192.168.60.132:80/library/kube-controllers:v3.20.0
#推送
docker push 192.168.60.132:80/library/node:v3.20.0
docker push 192.168.60.132:80/library/pod2daemon-flexvol:v3.20.0
docker push 192.168.60.132:80/library/cni:v3.20.0
docker push 192.168.60.132:80/library/kube-controllers:v3.20.0
导入dashboard到harbor
docker tag kubernetesui/metrics-scraper:v1.0.8 192.168.60.132:80/library/metrics-scraper:v1.0.8
docker push 192.168.60.132:80/library/metrics-scraper:v1.0.8
docker tag kubernetesui/dashboard:v2.5.1 192.168.60.132:80/library/dashboard:v2.5.1
docker push 192.168.60.132:80/library/dashboard:v2.5.1
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容