Docker仓库搭建之Harbor(三)

分布式Harbor

Harbor是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器, 由vmware 开源,其 通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。

官方地址:https://goharbor.io/

官方github地址:https://github.com/goharbor/harbor

安装Harbor

尽量选择CentOS系统安装Harbor,Ubuntu python版本较新,或许不兼容。

下载地址:https://github.com/vmware/harbor/releases
安装文档:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

服务器docker1和服务器docker3分别安装docker。

企业中使用的话,最好将docker安装目录单独挂载一块硬盘,然后做开机自动挂载,如挂载/dev/sdb至/var/lib/docker目录(最好使用UUID挂载-blkid /dev/sdb)。此块sdb硬盘,底层可基于raid10或raid5做基础,防止单块硬盘损坏导致docer不可用。然后启动docker,生成文件则保存在单独的硬盘中

本次使用harbor稳定版1.8.0离线安装包,具体名称为:harbor-offline-installer-v1.8.0.tgz。

安装docker-compose

安装docker-compose-Ubuntu系统
# curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# chmod a+x /usr/local/bin/docker-compose

# docker-compose version

安装docker-compose-Centos系统,配置epel源
# yum install docker-compose -y

创建自签名证书并签发证书:

# mkdir /usr/local/harbor/ssl
/usr/local/harbor/ssl]# cd /usr/local/harbor/ssl
# (umask 066;openssl genrsa 2048 > cakey.pem)
# openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650
CN
beijing
beijing
martinhe
devops
ca.martinhe.com
回车
# openssl x509 -in cacert.pem -noout -text  #可查看CA证书内容。
# openssl req -newkey rsa:1024 -nodes -keyout martinhe.com.key > martinhe.com.csr
CN
beijing
beijing
martim
devops
docker1.martinhe.com
回车
# openssl x509 -req -days 365 -in martinhe.com.csr -CA cacert.pem -CAkey cakey.pem -set_serial 01 > martinhe.com.crt

配置 Harbor

# tar xvf harbor-offline-installer-v1.8.0.tgz
# cd /usr/local/harbor/
修改harbor.yml配置文件
hostname=docker1.martinhe.com
harbor_admin_password: 123456
http:
  port: 80
https:
  port: 443
  certificate: ./ssl/martinhe.com.crt
  private_key: ./ssl/martinhe.com.key

/usr/local/harbor]# ./install.sh

client同步在crt证书:

# mkdir /etc/docker/certs.d/harbor.martinhe.com -p
/usr/local/harbor/ssl]# scp martinhe.com.crt 172.16.36.20:/etc/docker/certs.d/harbor.martinhe.com   #保证最后的这个文件夹和harbor域名一致。

测试客户机登录harbor

# vim /etc/hosts    配置本地host解析
172.16.36.22    harbor.martinhe.com

# docker login harbor.martinhe.com 
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded     #成功登录

经测试:搭建单机和无证书版主从同步复制镜像木有问题,带证书添加主从复制规则时,测试无法连通,网上的资料少之又少,时间所迫,以后再做研究。