文章目录
Harbor官方安装指导地址: https://goharbor.io/docs/2.5.0/install-config/
此时Harbor官方文档最新版本是2.5.0
一、安装docker-ce和docker-compose
因为Harbor是运行在docker环境的,所以需要先安装docker环境
1.安装docker-ce
2.安装docker-compose
# 安装epel源
yum install -y epel-release
# 安装docker-compose
yum install -y docker-compose
二、下载Harbor安装包
官方Github的下载地址:https://github.com/goharbor/harbor/releases
可以选择手动本地下载好Harbor包之后再用工具传输到服务器上(此步骤不演示),注意要下载的是offline离线版本,里面包含Harbor的所有文件
本人是直接在CentOS上进行下载,下载命令如下:
# 原下载命令,到github上下载,下载速度比较慢
wget https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz
# 使用代理站点下载,下载速度快
wget https://ghproxy.com/https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz
三、配置和安装Harbor
1.解压下载到Harbor安装包
# 解压到/opt/目录下,此命令需要在harbor压缩包目录下执行
# 命令执行完毕后,/opt/目录下,会存在harbor文件夹
tar -vxf harbor-offline-installer-v2.5.3.tgz -C /opt/
2.生成证书
因为本人没有申请域名和购买SSL证书,则需要自己生成
此步骤需要在解压后的/opt/harbor目录下执行
# 进入harbor文件夹
cd /opt/harbor/
# 生成证书
openssl genrsa -out ca.key 4096
# 下面命令需要填写自己的域名或者IP,本人使用本机IP
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=填写域名或者IP" \
-key ca.key \
-out ca.crt
# 示例仅供参考,请根据电脑实际IP自行填写
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=127.0.0.1" \
-key ca.key \
-out ca.crt
上面命令执行完毕会在harbor目录下生成ca.crt和ca.key文件
3.移动证书位置
# 创建/data/cert/
mkdir /data/cert/
# 把证书(ca.crt、ca.key)位置移到/data/cert/目录下
mv ca* /data/cert/
4.修改Harbor配置
# 进入harbor文件夹
cd /opt/harbor/
# 将配置文件复制一份
cp harbor.yml.tmpl harbor.yml
# 修改配置文件内容
vi harbor.yml
配置文件主要修改内容如下:
配置文件修改后:
四、生成配置文件
# 在harbor目录下执行
./prepare
五、安装Harbor
# 在harbor目录下执行
./install.sh
等待最后:
即安装完成!
六、访问Harbor控制端
浏览器输入:https://配置的IP或者域名:8443/
注意:此步骤如果不通,请查看自己设置的端口防火墙是否开启
默认用户名:admin
默认密码:Harbor12345
七、Docker登录Harbor异常处理
1.Error response from daemon: Get “https://IP/v2/”: x509: certificate relies on legacy Common Name field, use SANs instead
原因:自生成的证书被Docker认为不可靠的
解决:把自生成的证书放入Docker配置文件中
# 在docker配置文件中建立自己IP或域名的文件夹
mkdir /etc/docker/cert.d/IP(或者域名)
# 示例
mkdir /etc/docker/cert.d/127.0.0.1
# 将证书复制进入
cp /data/cert/ca.crt /etc/docker/cert.d/127.0.0.1/
# 重启docker
systemctl restart docker
2.Error response from daemon: Get “https://IP/v2/”: dial tcp IP:8443: connect: connection refused
原因:Docker拒绝不安全连接
解决:将自己的IP或域名加入Docker允许的不安全连接中
# 创建docker配置文件,加入配置
touch /etc/docker/daemon.json
# 编辑文件
vi /etc/docker/daemon.json
# 加入如下配置
{
"insecure-registries" : ["IP或域名:端口"]
}
示例:该连接端口为https端口
{
"insecure-registries" : ["127.0.0.1:8443"]
}
# 重启Docker
systemctl restart docker
# 注意此时重启了docker,但是harbor不一定会成功重启,需要手动重启harbor
# 先进入自己的harbor目录
cd /opt/harbor
# 停止harbor
docker-compose down -v
# 重启harbor
docker-compose up -d
八、Harbor其他操作命令
1.docker登录harbor
# 此端口连接为https端口
docker login IP或域名:端口
2.docker登出harbor
# 此端口连接为https端口
docker logout IP或域名:端口
3.卸载Harbor
# 移除 Harbor 的容器,但将所有图像数据和 Harbor 的数据库文件保留在文件系统中
sudo docker-compose down -v
# 在执行全新重新安装之前删除 Harbor 数据库和映像数据
rm -r /data/database
rm -r /data/registry