分布式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 #成功登录