安装harbor之前,需要安装好Python-2.7+,Docker-1.10+,Docker Compose-1.6.0+。
# 版本检验python --versionsudo docker-compose --versionsudo docker --version
1.安装介质准备
版本:harbor-offline-installer-v1.9.2.tgz
下载:https://github.com/goharbor/harbor/releases
安装:https://github.com/goharbor/harbor/blob/master/docs/install-config/_index.md
将安装介质上传至${MY_VAGRANT_HOME}/docker/share。
2.自签SSL支持https证书
Ø 生成CA证书
mkdir -p /data/certcd /data/certopenssl genrsa -out ca.key 4096openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=CN/ST=Shenzhen/L=Shenzhen/O=chinatelecom/OU=ecloudcaas/CN=192.168.0.101" \-key ca.key \-out ca.crt
Ø 生成域名证书
cd /data/certopenssl genrsa -out 192.168.0.101.key 4096openssl req -sha512 -new \-subj "/C=CN/ST=Shenzhen/L=Shenzhen/O=chinatelecom/OU=ecloudcaas/CN=192.168.0.101" \-key 192.168.0.101.key \-out 192.168.0.101.csr
Ø 生成ext文件
Chrome已经不再支持证书中的commonName匹配,实际上,自2017年1月起就需要subjectAltName这个规则了。主要是subjectAltName,这里写的IP.1=${IP}还可以写DNS.1=${YOUR_DOMAIN_NAME}。
cd /data/certcat > v3.ext <<-EOFauthorityKeyIdentifier=keyid,issuerbasicConstraints=CA:FALSEkeyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEnciphermentextendedKeyUsage = serverAuthsubjectAltName = @alt_names[alt_names]IP.1=192.168.0.101EOF
Ø 重新生成服务端证书
cd /data/certopenssl x509 -req -sha512 -days 3650 \-extfile v3.ext \-CA ca.crt -CAkey ca.key -CAcreateserial \-in 192.168.0.101.csr \-out 192.168.0.101.crt
Ø 生成客户端证书
cd /data/certopenssl x509 -inform PEM -in 192.168.0.101.crt -out 192.168.0.101.cert
Ø 客户端证书配置
将带域名的cert和key,ca.crt拷贝到Docker主机/etc/docker/certs.d/${YOUR_DOMAIN_NAME}/目录下。
mkdir -p /etc/docker/certs.d/192.168.0.101cp /data/cert/192.168.0.101.cert /etc/docker/certs.d/192.168.0.101/cp /data/cert/192.168.0.101.key /etc/docker/certs.d/192.168.0.101/cp /data/cert/ca.crt /etc/docker/certs.d/192.168.0.101/
Ø 私仓登记
注意:daemon.json **是Docker的配置文件,默认是没有的,需要我们手动创建。**
sudo vi /etc/docker/daemon.json
配置如下:
{"insecure-registries": ["192.168.0.101"]}
重启服务:
sudo systemctl daemon-reloadsudo systemctl restart docker
3.安装Harbor
Ø 安装包解压缩
cd /sharewget -P /share/ https://github.com/goharbor/harbor/releases/download/v1.9.2/harbor-offline-installer-v1.9.2.tgzsudo sutar -xvf harbor-offline-installer-v1.9.2.tgz -C /usr/local/rm -rf /share/harbor-offline-installer-v1.9.2.tgz
Ø 修改配置文件
如果使用Harbor 1.8或者1.9版本,切记配置文件中https需要顶格,证书和port需要缩进相同单位,不然会报错。
cd /usr/local/harborcp harbor.yml harbor.yml.baksudo vi harbor.yml
配置如下:
hostname: docker-node1...https:port: 443certificate: /data/cert/192.168.0.101.crtprivate_key: /data/cert/192.168.0.101.key...
Ø 更新参数
cd /usr/local/harbor./prepare
Ø 安装
cd /usr/local/harbor./install.sh
4.Harbor服务启停
Harbor的日常运维管理是通过docker-compose来完成的,Harbor本身有多个服务进程,都放在Docker容器之中运行,可以通过docker ps或者docker-compose来查看:
cd /usr/local/harborsudo docker-compose startsudo docker-compose restartsudo docker-compose stopsudo docker-compose ps
5.验证
WebUI入口:https://192.168.0.101
账户口令(默认):admin/Harbor12345
Ø 创建仓库项目
Ø 登录私仓
sudo docker login 192.168.0.101sudo docker logout
Ø 上传镜像到私仓
# 给镜像打标签(镜像名字规范:{仓库地址:端口/镜像名字:版本})sudo docker tag busybox:latest 192.168.0.101/busybox/busybox:1.0.0# 上传打标签后的镜像到仓库(需要先登录私仓)sudo docker push 192.168.0.101/busybox/busybox:1.0.0
Ø 从私仓下载镜像
# 下载镜像时如果不指定tag将会把该镜像的所有tags都下载下来sudo docker pull 192.168.0.101/busybox/busybox:1.0.0
6.Docker Clinet
Ø 私仓登记
sudo vi /etc/docker/daemon.json
配置如下:
{"registry-mirrors": ["https:mirror.ccs.tencentyun.com","https://kuamavit.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"],"insecure-registries": ["https://192.168.0.101"],"max-concurrent-downloads": 10,"log-driver": "json-file","log-level": "warn","log-opts": {"max-size": "10m","max-file": "3"}}
重启服务:
sudo systemctl daemon-reloadsudo systemctl restart docker
Ø 登录私仓
sudo docker login 192.168.0.101sudo docker logout
Ø 上传镜像到私仓
# 给镜像打标签(镜像名字规范:{仓库地址:端口/镜像名字:版本})sudo docker tag busybox:latest 192.168.0.101/busybox/busybox:1.0.0# 上传打标签后的镜像到仓库(需要先登录私仓)sudo docker push 192.168.0.101/busybox/busybox:1.0.0
Ø 从私仓下载镜像
# 下载镜像时如果不指定tag将会把该镜像的所有tags都下载下来sudo docker pull 192.168.0.101/busybox/busybox:1.0.0
参考
Harbor1.9部署并配置https:
https://www.cnblogs.com/ghl1024/p/12318641.html
