因公司需要安装harbor作为docker镜像仓库,安装过程冲踩了不少坑。
因docker默认使用https连接harbor,但是harbor未携带证书,所以本文使用了自签证书搭建了harbor
harbor环境:Centos7
1.先安装docker和docker-compose
docker安装步骤另外一篇。
使用官网https://docs.docker.com/compose/install/在线安装方式,如下
curl-L"https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose
2. 安装之后下载harbor离线安装包
从https://github.com/goharbor/harbor/releases下载1.8.6离线安装包
执行wget https://github.com/goharbor/harbor/releases/download/v1.8.6/harbor-offline-installer-v1.8.6.tgz
下载过程可能比较慢
3.下载之后解压离线安装包tar -xvf harbor-offline-installer-v1.8.6.tgz
解压之后执行cd harbor
4. 如果不使用https, 则可以直接执行./install.sh 即可 如果需要配置https 忽略本步,执行以下步骤
5. 以下是基于https的步骤
mkdir cert
cd cert
6. 生成根证书私钥(无加密)
openssl genrsa -out ca.key 2048
7. 生成自签名证书(使用已有私钥ca.key自行签发根证书)
openssl req -x509 -new -nodes -key ca.key -days 10000 -out ca.crt
8. 生成服务器端私钥和CSR签名请求
openssl req -newkey rsa:4096 -nodes -sha256 -keyout server.key -out server.csr
9. 签发服务器证书
1) echo subjectAltName = IP:x.x.x.x > extfile.cnf
x.x.x.x 是harbor的机器ip,可以配置多个IP:x.x.x.x,IP:x.x.x.x
2) openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 365 -extfile extfile.cnf -out server.crt
10. 签发之后,编辑harbor.yml
打开https ,并配置端口和证书路径
11.执行./install.sh
登录容器启动完成即可。
harbor的默认密码在harbor.yml中配置,可以在登录之后修改
因是自签证书,浏览器会拦截,需要添加到信任中
12. 其他机器需要通过docker login登录的则需要复制ca证书到响应的机器
如:scp /opt/harbro/cert/ca.crt root@x.x.x.x:/etc/docker/certs.d/harbor's ip/
x.x.x.x 其他机器的ip, harbor's ip为harbor的ip
重启docker服务 执行docker login -u账号 -p密码 harbor's ip 即可看到Login Succeeded