Harbor

Harbor是VMware公司最近开源的企业级Docker Registry项目, 其目标是帮助用户迅速搭建一个企业级的Docker registry服务,即能存储自己的镜像又有安全认证。

一、环境要求

harbor需要安装docker 17.06.0-ce+和docker-compose 1.18.0+才能使用

二、安装docker-ce

配置yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

安装docker-ce

yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker

三、安装docker-compose

安装docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.添加可执行权限

sudo chmod +x /usr/local/bin/docker-compose

3.验证版本

docker-compose --version

说明:Docker Compose是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。 使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

四、获取Harbor离线安装包

下载网站 https://github.com/vmware/harbor/releases/

解压:tar xvf harbor-offline-installer-v1.10.2.tgz

编辑配置文件:

vim harbor.yaml
修改harbor配置文件里面的主机名(hostname)要改为:reg.syqedu.com(访问harbor的域名或外网IP)
更改证书所在的目录路径:
ssl_cert = /root/harbor/ssl/reg.syqedu.com.crt
ssl_cert_key = /root/harbor/ssl/reg.syqedu.com.key
更改harbor登录密码:
harbor_admin_password = 12345

五、生成SSL证书

进入harbor目录: mkdir ssl 【创建证书存放目录】 cd ssl

1.生成根证书

openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 -key ca.key -out ca.crt

生成根证书

2.生成一个证书签名,设置域名为:reg.syqedu.com

openssl genrsa -out reg.syqedu.com.key 4096
openssl req -sha512 -new -key reg.syqedu.com.key -out reg.syqedu.com.csr

生成签名

3.chrome浏览器会查看当前域名是否在证书中声明,该声明由 subjectAltName 字段设置。 上述的生成步骤默认未设置该字段,解决方法如下:

创建一个v3.ext文件:

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=reg.syqedu.com
DNS.2=reg.syqedu
DNS.3=k8s-master #主机名
EOF

在最后生成主机证书的时候指定v3.ext文件

4.生成主机证书

openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in reg.syqedu.com.csr -out reg.syqedu.com.crt

生成主机证书

六、通过自带脚本安装

1.执行配置文件: ./prepare

2.然后执行安装:./install.sh

3.列出当前运行容器是否健康: docker-compose ps

4.然后绑定hosts访问即可

七、其他docker主机访问harbor

要把harbor上的自签证书拿到docker上: mkdir -p /etc/docker/certs.d/reg.syqedu.com 把reg.syqedu.com.crt拷贝到这个目录下

docker login reg.syqedu.com #登录harbor仓库 然后上传镜像到harbor: docker tag tomcat:v1 reg.syqedu.com/test/tomcat:v1 #打标记 docker push reg.syqedu.com/test/tomcat:v1 #上传