目录
第一步: 安装依赖
由于harbor的需要依赖docker和docker-compose,由于docker已经安装好,现在安装docker-compose,官网地址为:
https://github.com/docker/compose/releases
将下载下来的“docker-compose-Linux-x86_64”文件上传到服务器上,然后将其复制到 /usr/local/bin,并改名为“docker-compose”
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
添加可执行权限:
chmod +x /usr/local/bin/docker-compose
安装成功后可以执行版本查看命令:
docker-compose -v
(注意如果path中没有/usr/local/bin,则需要添加
vi /etc/profile
末尾追加
export PATH=/usr/local/bin:$PATH
保存后
source /etc/profile
)
第二步:下载harbor
https://github.com/goharbor/harbor/releases
下载harbor-offline-installer-v1.10.2.tgz
由于下载比较慢,现在分享百度网盘文件:
harbor-offline-installer-v1.10.2.tgz
提取码:z2gg
第三步:生成https证书
由于使用内网服务器,无法连接外网也没有域名:
# 创建证书目录,并赋予权限
mkdir -p /data/docker_harbor/cert && chmod -R 777 /data/docker_harbor/cert && cd /data/docker_harbor/cert
# 生成私钥,需要设置密码
openssl genrsa -des3 -out harbor.key 2048
# 生成CA证书,需要输入密码
openssl req -sha512 -new \
-subj "/C=CN/ST=JS/L=WX/O=zwx/OU=otms/CN=192.168.100.104" \
-key harbor.key \
-out harbor.csr
echo subjectAltName = IP:192.168.100.104 > extfile.cnf
# 备份证书
cp harbor.key harbor.key.org
# 退掉私钥密码,以便docker访问(也可以参考官方进行双向认证)
openssl rsa -in harbor.key.org -out harbor.key
# 使用证书进行签名
openssl x509 -req -days 365 -in harbor.csr -signkey harbor.key -extfile extfile.cnf -out harbor.crt
第四步:安装
解压下载的包
tar -zxvf harbor-offline-installer-v1.10.2.tgz
解压后会生成harbor的文件夹
编辑harbor.yml,修改hostname、https证书路径、admin密码
cd harbor
vi harbor.yml
修改安装目录:
修改端口号:
安装:
./install.sh
安装完成后,显示一下
打开https://192.168.100.104:8443
输入admin和我们配置的密码登录
到这里我们的安装已经完成,但是我们发现,如果重启电脑或者docker服务以后服务会挂掉
systemctl restart docker
docker ps
我们需要配置开机启动:
第五步:配置开机启动
新建文件:
vi /usr/lib/systemd/system/harbor.service
i
[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/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f /root/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
systemctl enable harbor
systemctl restart harbor