环境

10.0.0.124          harbor-1
10.0.0.164          harbor-2

1、安装docker

2、安装docker compose(不安装docker compose会报错)

#1、推荐pip安装docker compose(推荐使用)
root@jiangmin:~# apt install python3-pip
root@jiangmin:~# pip3 install docker-compose
root@jiangmin:~# docker-compose --version
docker-compose version 1.29.2, build unknown

#2、从github下载安装

#3、直接安装,版本较旧(不推荐使用)

3、下载Harbor安装包并解压缩

下载离线完整安装包,推荐使用

root@jiangmin:~# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.6.tgz

root@jiangmin:~# mkdir /apps
root@jiangmin:~# tar xvf harbor-offline-installer-v1.7.6.tgz -C /apps/

4、编辑配置文件 harbor.cfg

#只需要修改下面几行
root@jiangmin:~# vim /apps/harbor/harbor.cfg
hostname = 10.0.0.101                  #修改此行,指向当前主机IP 或 FQDN
harbor_admin_password = 123456         #修改此行指定harbor登录用户admin的密码

5、运行 harbor 安装脚本

#先安装python
root@jiangmin:~# apt -y install python
#安装docker harbor 
root@jiangmin:~# /apps/harbor/install.sh

#安装harbor后会自动开启很多相关容器

image.png

6、实现开机自动启动 harbor

方法1: 写service文件实现

root@jiangmin:~# vim /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 /apps/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f /apps/harbor/docker-compose.yml down

[Install]
WantedBy=multi-user.target


root@jiangmin:~# systemctl daemon-reload
root@jiangmin:~# systemctl enable harbor

方法2: 通过 rc.local实现

root@jiangmin:~# vim /etc/rc.local
#!/bin/bash
cd /apps/harbor
/usr/bin/docker-compose up

root@jiangmin:~# chmod +x /etc/rc.local

7、登录 harbor1-2 主机网站

用浏览器访问: http://10.0.0.124/和http://10.0.0.164/ 用户名: admin 密码: 即前面harbor.cfg中指定的密码 image.png image.png

8、实现harbor高可用

image.png

image.png

在harbor-2上仓库管理中新建目标

image.png

输入第一台harbor服务器上的主机和用户信息

image.png

image.png

在harbor-2上新建复制规则实现到第一台harbor的单向复制

image.png

image.png

在第一台harbor主机上重复上面操作

上传镜像观察是否可以双高同步

image.png

image.png

image.png

image.png

如果在harbor-1上传镜像harbor-2也能看到这个镜像,说明高可用成功;反之,亦然。