harbor是vmware公司开源的企业级docker registry项目,项目地址:https://github.com/vmware/harbor,项目中包含harbor的属性、下载、安装等说明。
harbor官方文档地址:https://goharbor.io/docs/1.10/
harbor安装步骤:
- 下载离线安装包
- 安装docker
- 安装docker-compose
- 自签TLS证书
- harbor的安装与配置
- docker主机访问harbor
下面我们将介绍各个步骤中的详细操作。
下载离线安装包
下载地址:https://github.com/goharbor/harbor/releases
安装docker
详见:docker centos安装(https://www.cnblogs.com/qlgj/p/12609416.html)
安装docker-compose
1)下载二进制包
docker-compose是使用python编写的一个二进制工具,下载后进行授权操作。
命令下载:curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
手动下载: https://github.com/docker/compose/releases
2)授权
将下载的文件授与可执行权限,然后移动到可执行的路径下
mv docker-compose-Linux-x86_64 docker-compose
chmod +x docker-compose
mv docker-compose /usr/bin/
3)查看docker-compose版本
docker-compose -version
自签TLS证书
1)创建证书生成目录
mkdir /opt/ssl -p
cd /opt/ssl
2)生成根证书私钥(无加密)
openssl genrsa -out ca.key 4096
3)生成自签名证书(使用已有私钥ca.key
自行签发根证书)生成ca.crt
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=ccx/OU=plat/CN=vincent" \
-key ca.key \
-out ca.crt
4)生成服务器端自己域名的key
openssl genrsa -out harbor.cn.key 4096
5)生成服务器端自己域名的CSR签名请求
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=ccx/OU=plat/CN=vincent" \
-key harbor.cn.key \
-out harbor.cn.csr
6)生成一个 openssl 命令需要的外部配置文件 externalfile.ext
cat > externalfile.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=harbor.cn
EOF
这个文件可以随意命名,但是要记住,后面对的命令还要用到。、
文件内容中主要是subjectAltName
这一项
如果配IP就写IP.1=192.168.xxx.xxx
如果配域名就写 DNS.1=xxx.xxx.com
7)通过外部配置文件 externalfile.ext
和 csr 生成 crt
openssl x509 -req -sha512 -days 3650 -extfile externalfile.ext \
-CA ca.crt \
-CAkey ca.key \
-CAcreateserial \
-in harbor.cn.csr \
-out harbor.cn.crt
8)将服务端的 crt 转换成客户端用的 cert
openssl x509 -inform PEM -in harbor.cn.crt -out harbor.cn.cert
9)至此,所有证书文件就创建好了
harbor的安装配置
1)创建harbor安装目录,并将前面下载的harbor离线安装包拷贝到该目录下并解压缩
mkdir /usr/local/harbor -p
tar -xvf ./harbor-offline-installer-v1.10.1.tgz /usr/local/harbor
解压缩后的文件如下:
其中harbor.yml为配置文件,下面我们将对其进行修改配置,有些版本的配置文件可能为harbor.config
2)修改配置文件harbor.yml,主要修改如下:
3)更新配置
./prepare
4)安装
./install.sh
当看到Harbor has been installed and started successfully
时,表示安装成功。此时,可通过浏览器访问harbor了。
5)UI访问harbor
使用浏览器,通过https://域名
或https://ip:port
两种方式都可以访问Harbor的WebUI。
因为是自签CA证书,浏览器会拦截,需要添加信任即可。然后便会看到harbor的登录页面了。
用户名:admin
密码:即harbor.yml
文件中harbor_admin_password
参数的值。
docker主机访问harbor
1)创建目录
mkdir -p /etc/docker/certs.d/harbor.cn/
2)将上面harbor主机上创建的证书中的harbor.cn.cert harbor.cn.crt harbor.cn.key拷贝到第一步创建的目录中
scp ./harbor.cn.cert ./harbor.cn.key harbor.cn.crt [email protected]:/etc/docker/certs.d/harbor.cn/
3)重启docker
systemctl daemon-reload
systemctl restart docker
4)在docker客户端登录harbor
docker login -u<harbor_user_name> -p<harbor_password> <harbor_domain>
当看到Login Succeeded时,就说明登陆成功了。