目录
1、安装docker
#安装docker-ce 社区版
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
#启动docker服务
systemctl start docker
#查看docker版本
docker -v
#安装docker-compose
yum -y install docker-compose
2、下载Harbor上传至主机
官网:https://github.com/goharbor/harbor/releases
#创建解压目录harbor
mkdir harbor
#进入解压目录harbor cd harbor
#解压压缩包到当前目录下的harbor目录中
tar -zxvf harbor-offline-installer-v2.5.1.tgz
3、配置HTTPS证书
#生成CA证书私钥
openssl genrsa -out ca.key 4096
#生成CA证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=域名地址" \
-key ca.key \
-out ca.crt
#将服务器证书和密匙复制到Harbor主机上的证书文件夹中
cp ca.crt /data/cert
cp ca.key /data/cert
#重启docker
systemctl restart docker
#运行prepare脚本启用HTTPS服务
./prepare
4、配置Harbor YML文件
#进入解压完的harbor文件夹种
cd harbor
#将harbor.yml.tmpl重名名为harbor.yml
mv harbor.yml.tmpl harbor.yml
vim harbor.yml
修改hostname为域名访问地址
hostname: ***********
certificate: /data/cert/ca.crt
private_key: /data/cert/ca.key
5、运行安装程序脚本
#到harbor解压目录下执行
./install.sh
6、测试命令登陆仓库
docker login 仓库地址
7、报错处理
Error response from daemon: Get "https://仓库地址/v2/": x509: certificate relies on legacy Common Name field, use SANs instead
解决
安装docker后不一定有/etc/docker/daemon.json文件,手动创建一个进行编辑
{"insecure-registries": [
"地址"
]}
保存退出后重启docker和执行./install.sh
8、设置harbor服务自启动
当部署Harbor的服务器在重启之后,可能会出现Harbor无法跟随系统自启动
解决方案
现假设Harbor的安装目录位置为/usr/local/harbor,在Harbor安装完成之后,在此目录下会生成docker-compose.yml配置文件,可以使用docker-compose操作此文件来控制Harbor的启停。
接下来编写自启Harbor的systemd服务,命名为harbor.service(放置于/etc/systemd/system目录下):
[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 {{ harbor_install_path }}/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f {{ harbor_install_path }}/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target