harbor

下载

https://github.com/goharbor/harbor/tags

2.6版本官方文档

https://goharbor.io/docs/2.6.0/

docker-compose下载

https://github.com/docker/compose/releases/

安装

官方配置要求

硬件要求

ResourceMinimumRecommended
CPU2 CPU4 CPU
Mem4 GB8 GB
Disk40 GB160 GB

软件要求

SoftwareVersionDescription
Docker engineVersion 17.06.0-ce+ or higherFor installation instructions, see Docker Engine documentation
Docker ComposeVersion 1.18.0 or higherFor installation instructions, see Docker Compose documentation
OpensslLatest is preferredUsed to generate certificate and keys for Harbor

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.----

登录地址

http://192.168.60.132

图片[1]-harbor-秋风落叶

默认账号密码

系统默认
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
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容