微服务学习实战笔记 4.2-系统部署篇-搭建 Harbor 镜像仓库服务器
搭建 Harbor 镜像仓库服务器
重新创建一台服务器 HarborSERVER 192.168.2.170 , 按前面方式安装Docker 。
1、在 docker/daemon.json 配置仓库地址
vi /etc/docker/daemon.json
{
"insecure-registries": ["https://my.hub.com"]
}
2、重新启动docker
systemctl daemon-reload && systemctl restart docker
3、安装lrzsz包
yum -y install lrzsz
下载 docker-compose 和 harbor安装文件:
下载地址 :https://github.com/docker/compose/releases 我下载的是 docker-compose-Linux-x86_64-1.25.4 下载后将-Linux-x86_64 去掉
下载地址 : https://github.com/goharbor/harbor/releases 我下载的是 harbor-offline-installer-v1.10.4.tgz
将 docker-compose 拖拽到XShell中复制到harbor主机
将 harbor-offline-installer-v1.10.4.tgz 拖拽到XShell中复制到harbor主机
4、执行docker-compose相关操作
mv docker-compose /usr/local/bin/ chmod a+x /usr/local/bin/docker-compose
5、执行harbor解压配置
tar -zxvf harbor-offline-installer-v1.10.4.tgz mv harbor /usr/local/ cd /usr/local/harbor vi harbor.yml
hostname = reg.mydomain.com 或改成自己的 hostname = my.hub.com
certificate: /data/cert/harbor.crt
private_key: /data/cert/harbor.key
6、创建相关证书
1)
# 创建证书目录,并赋予权限 mkdir -p /data/cert && chmod -R 777 /data/cert && cd /data/cert # 生成私钥,需要设置密码 openssl genrsa -des3 -out harbor.key 2048
-输入并确认新密码 :例如 123456
2)创建证书请求:
# 生成CA证书,需要输入密码123456 openssl req -sha512 -new \ -subj "/C=CN/ST=BJ/L=BJ/O=org/OU=org/CN=my.hub.com" \ -key harbor.key \ -out harbor.csr
或者逐个输入
openssl req -new -key harbor.key -out harbor.csr
-输入签名私钥的密码 :123456
-输入国家名 :CN
-输入省 :BJ
-输入市 :BJ
-输入组织 :org
-输入机构 :org
-输入域名 : my.hub.com
-输入邮箱 :xxxxxx@163.com
-改密码 : (不用直接回车)
-改名 : (不用直接回车)
3)将私钥备份一份:
cp harbor.key harbor.key.org
4)退掉私钥密码,以便docker访问(也可以参考官方进行双向认证):
openssl rsa -in harbor.key.org -out harbor.key
-输入签名私钥的密码 :123456
5)使用证书进行签名:
openssl x509 -req -days 365 -in harbor.csr -signkey harbor.key -out harbor.crt
7、执行安装:
cd cd /usr/local/harbor ./install.sh
如下图安装完成
8、 访问
访问 https://my.hub.com 或 https://192.168.2.170 ,出现下图,输入 用户名:admin 密码(如没改过):Harbor12345
9、启动关闭 Harbor
进入目录
cd /usr/local/harbor
关闭Harbor服务,在项目目录下执行
docker-compose down -v
启动Harbor服务,在项目目录下执行
docker-compose up -d
配置Harbor开机自启(这块启动失败,还需要找具体原因),参考:关于harbor启动失败解决方法
编辑服务文件
vi /usr/lib/systemd/system/harbor.service
写入以下内容
[Unit] Description=Harbor After=docker.service systemd-networkd.service systemd-resolved.service Requires=docker.service Documentation=https://github.com/goharbor/harbor [Service] Type=simple Restart=on-failure RestartSec=5 ExecStart=/usr/local/bin/docker-compose -f /usr/local/harbor/docker-compose.yml up ExecStop=/usr/local/bin/docker-compose -f /usr/local/harbor/docker-compose.yml down [Install] WantedBy=multi-user.target
服务创建好后赋权,开启开机自启,启动服务,查看状态:
chmod +x /usr/lib/systemd/system/harbor.service systemctl enable harbor.service systemctl start harbor.service systemctl status harbor.service
10、其他服务器解析 my.hub.com
在其他服务器查看是否解析
cat /etc/hosts
解析信息追加到hosts中
echo "192.168.2.170 my.hub.com" >> /etc/hosts
如果其他节点登录仓库或pull和push时出现下面错误,
Error response from daemon: Get https://my.hub.com/v2/: x509: certificate signed by unknown authority
需要从192.168.2.170 向其他节点拷贝证书
在其他节点执行目录创建
mkdir -p /etc/docker/certs.d/my.hub.com
在192.168.2.170 节点执行证书拷贝
#scp /data/cert/harbor.crt 其他节点IP:/etc/docker/certs.d/my.hub.com scp /data/cert/harbor.crt 192.168.2.171:/etc/docker/certs.d/my.hub.com
参考资料