harbor介绍
Harbor 是由 VMware 公司开源的企业级的 Docker Registry 管理项目,它包括权限管理 (RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。官网地址 Harbor (goharbor.io)
安装依赖
harbor依赖于docker 和docker-compose
需求先安装docker和docker-compose
1、安装docker
使用yum安装docker
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker
systemctl enable docker
2、安装docker-compose
下载docker-compose
wget https://github.com/docker/compose/releases/download/v2.12.1/docker-compose-linux-x86_64
[root@harbor ~]# cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
[root@harbor ~]# chmod +x /usr/local/bin/docker-compose
3、下载harbor
harbor下载地址:Releases · goharbor/harbor (github.com)
解压harbor
tar -xvf harbor-offline-installer-v2.6.1.tgz -C /usr/local/harbor
自签证书
官方自签名证书说明:
Harbor docs | Configure HTTPS Access to Harbor (goharbor.io)
如果使用containerd部署容器使用harbor则需要参考官网说明,与传统docker部署的Harbor自签发 SSL证书不同需要使用SAN包含多域名签发对象:
1、创建自签发证书
创建目录
mkdir /usr/local/harbor/certs
cd certs/
创建私钥
openssl genrsa -out ca.key 4096
使用私钥创建自签CA证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Hanan/L=Zhengzhou/O=cib/OU=it/CN=cib.com.cn" \
-key ca.key \
-out ca.crt
C,Country,代表国家
ST,STate,代表省份
L,Location,代表城市
O,Organization,代表组织,公司
OU,Organization Unit,代表部门
CN,Common Name,代表服务器域名
emailAddress,代表联系人邮箱地址。
客户端私钥证书生成
openssl genrsa -out cib.com.cn.key 4096
openssl req -sha512 -new \
-subj "/C=CN/ST=Hanan/L=Zhengzhou/O=cib/OU=it/CN=cib.com.cn" \
-key cib.com.cn.key \
-out cib.com.cn.csr
生成多个域名请求
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=cib.com.cn
DNS.2=harbor.cib.com.cn
DNS.3=harbor.cib.local
EOF
使用自签名CA签发证书
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in cib.com.cn.csr \
-out cib.com.cn.crt
修改域名和https SSL签发的私钥和证书路径
将模板文件复制一份新的yml
cp harbor.yml.tmpl harbor.yml
修改yml文件
vim harbor.yml
必须修改几个项目
1、证书地址
2、hostname
3、data路径
4、登录密码
port: 443
# The path of cert and key files for nginx
certificate: /usr/local/harbor/certs/cib.com.cn.crt
private_key: /usr/local/harbor/certs/cib.com.cn.key
harbor_admin_password: admin123
data_volume: /data
hostname: harbor.cib.com.cn
建立Harbor数据目录,并使用数据盘挂载到/data目录
root@Harbor:/usr/local/harbor# mkdir /data
部署harbor
root@Harbor:/usr/local/harbor# ./install.sh --help
#--with-trivy 开启trivy扫描
root@Harbor:/usr/local/harbor# ./install.sh --with-trivy --with-chartmuseum
报错处理:
1、prepare base dir is set to /usr/local/harbor
Error happened in config validation...
ERROR:root:Please specify hostname
yml文件未设置hostname
2、Error happened in config validation...
ERROR:root:Error: The protocol is https but attribute ssl_cert is not set
yml未配置证书。
安装完成截图:
查看端口:
网站登录
登录harbor
新建一个新的公开目录
docker客户端配置
docker 客户端配置证书验证,并推送镜像到Harbor
#docker客户端创建证书保留位置
root@ubuntu20:~# mkdir /etc/docker/certs.d/harbor.cib.com.cn -p
#Harbor将证书发送给客户端
[root@localhost certs]# scp cib.com.cn.crt 192.168.28.171:/etc/docker/certs.d/harbor.cib.com.cn/
#docker客户端配置hosts域名解析Harbor
使用docker登录harbor
镜像管理
docker 对对镜像打标签
docker tag tomcat-base:v8.5.82 harbor.cib.com.cn/web/tomcat-base:v8.5.82
本地镜像
推送镜像
docker push harbor.cib.com.cn/web/tomcat-base:v8.5.82
harbor服务器情况
使用另外一台node登录harbor