本地打好的镜像上传到 Harbor 仓库
正文与配图来自原稿。示例环境:Harbor v2.4.1、地址
192.168.145.201:6789、镜像thingsboard:v1→.../thingsboard/thingsboard:3.4.2。请把 IP、端口、项目名、标签换成你自己的。
上一篇:本地 jar 如何制作成镜像并启动
1、Harbor 是什么?
Harbor 是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。
2、安装 Harbor
2.1、下载地址
https://github.com/goharbor/harbor/tags
2.2、上传到服务器
将离线安装包上传到服务器(原稿截图示意):

2.3、解压
解压到 module 目录下:
bash
tar -zxvf harbor-offline-installer-v2.4.1.tgz -C /root/module/

2.4、修改配置文件
拷贝一个 harbor.yml:
bash
[root@zd harbor]# cp harbor.yml.tmpl harbor.yml进行修改:
bash
vi harbor.yml
2.5、执行安装脚本
bash
[root@zd harbor]# ./install.sh
最后启动很多的容器:

使用 docker ps 查看,需要启动的容器比较多:

2.5、配置开机自启
bash
[root@zd ~]# vi /lib/systemd/system/harbor.service然后增加下面的内容:
ini
[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/local/bin/docker-compose -f /root/module/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f /root/module/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
启用示例:
bash
systemctl daemon-reload
systemctl enable harbor
systemctl start harbor3、访问
text
http://192.168.145.201:6789/

到此 Harbor 镜像仓库就安装成功了~~~~~
2.6、验证
2.6.1、登录 Harbor 仓库
bash
[root@zd ~]# docker login 192.168.145.201:6789
Username: admin
Password:
Error response from daemon: Get "https://192.168.145.201:6789/v2/": http: server gave HTTP response to HTTPS client解决办法
- 在服务器中,cd 到 docker 目录下:
bash
cd /etc/docker- 看这个目录下有没有
daemon.json这个文件,如果没有就手动创建,然后编辑:
bash
touch daemon.json
vi daemon.json- 配置 Harbor 的 IP 和端口:
json
{"insecure-registries":["你的harborip:端口"]}示例(对应本文环境):
json
{"insecure-registries":["192.168.145.201:6789"]}- 重启 docker:
bash
systemctl restart docker- 然后把所有的 docker 容器都起来:
bash
docker start 对应的容器名称2.6.2、再次登录

2.6.3、新建项目


2.6.4、以 thingsboard:v1 为例推送到 Harbor
先给镜像打标签:
bash
[root@zd docker]# docker tag thingsboard:v1 192.168.145.201:6789/thingsboard/thingsboard:3.4.2
推镜像到 Harbor 仓库:
bash
[root@zd docker]# docker push 192.168.145.201:6789/thingsboard/thingsboard:3.4.2
查看 Harbor 仓库是否有镜像了:

补充(辅)
- 推送前请先完成本地镜像构建:本地 jar 如何制作成镜像并启动。
harbor.yml里的hostname、http.port(示例 6789)须与访问地址、insecure-registries、docker login/tag/push中的地址一致。- HTTP 仓库必须配
insecure-registries;生产建议上 HTTPS,并收紧 Harbor 与 Docker 远程访问权限。 - 标签格式:
仓库地址/项目名/镜像名:版本,项目名需与 Harbor 里新建的项目一致(示例项目为thingsboard)。
