文章目录
- 前言
- 一、下载离线安装包
- 二、安装Docker Compose
- 三、安装harbor
- 1、解压安装包
- 2、修改配置文件
- 3、安装
- 四、配置https方式访问
- 1、获得证书授权
- 2、获得服务器证书
- 1)创建自己的私钥
- 2)生成证书签名请求
- 3)生成注册表主机的证书
- 3、配置和安装
- 1)配置服务器证书和港口密钥
- 2)为Docker配置服务器证书,密钥和CA
- 3)配置港口
- 4)为Harbor生成配置文件
- 5)停止并删除现有实例
- 6)重启harbor
- 4、注意
前言
现主流的私有仓库有Harbor和Dcoker官方的Registry,本文将介绍Harbor的搭建。
根据官方要求,搭建harbor的服务器硬件配置最低为:
硬件 | 配置 |
CPU | 2核 |
内存 | 4G |
存储 | 40G |
软件配置为:
软件 |
Docker |
Docker Compose |
安装方式分为在线安装和离线安装,本次使用离线安装。
一、下载离线安装包
下载地址:https://github.com/goharbor/harbor/releases
二、安装Docker Compose
执行以下命令安装Docker Compose,请确保已安装Docker
yum -y install epel-release
yum -y install python-pip
pip install docker-compose
查看安装是否成功
docker-compose -version
三、安装harbor
1、解压安装包
tar xvf harbour-offline-installer-v1.7.1.tgz
2、修改配置文件
解压完成后进入加压文件夹harbour
注意,新版本已将配置文件的格式从cfg转为yml,但其配置项还是那些,只是改变了配置方式而已。修改hostname及harbor_admin_password
vim harbor.cfg
3、安装
修改完成后进行安装
./install.sh
如果一切正常,此时已经安装完成了。 打开浏览器访问管理门户http://fengzg.com,请注意,默认管理员用户名/密码为admin/123456,登录后进入管理后台。
四、配置https方式访问
harbor默认安装为http方式,因为docker默认为https,所以使用起来非常不方便,所以这里将harbor转为https访问
假设您的注册表的主机名是yourdomain.com,并且其DNS记录指向您正在运行Harbor的主机。
1、获得证书授权
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=TW/ST=Taipei/L=Taipei/O=example/OU=Personal/CN=yourdomain.com" \
-key ca.key \
-out ca.crt
2、获得服务器证书
1)创建自己的私钥
openssl genrsa -out yourdomain.com.key 4096
2)生成证书签名请求
openssl req -sha512 -new \
-subj "/C=TW/ST=Taipei/L=Taipei/O=example/OU=Personal/CN=yourdomain.com" \
-key yourdomain.com.key \
-out yourdomain.com.csr
3)生成注册表主机的证书
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=yourdomain.com
DNS.2=yourdomain
DNS.3=hostname
EOF
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in yourdomain.com.csr \
-out yourdomain.com.crt
3、配置和安装
1)配置服务器证书和港口密钥
cp yourdomain.com.crt /data/cert/
cp yourdomain.com.key /data/cert/
2)为Docker配置服务器证书,密钥和CA
openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert
cp yourdomain.com.cert /etc/docker/certs.d/yourdomain.com/
cp yourdomain.com.key /etc/docker/certs.d/yourdomain.com/
cp ca.crt /etc/docker/certs.d/yourdomain.com/
以下说明了使用自定义证书的配置:
/etc/docker/certs.d/
└── yourdomain.com:port
├── yourdomain.com.cert <-- Server certificate signed by CA
├── yourdomain.com.key <-- Server key signed by CA
└── ca.crt <-- Certificate authority that signed the registry certificate
3)配置港口
修改配置文件harbor.cfg,设置https方式及证书路径
4)为Harbor生成配置文件
./prepare
5)停止并删除现有实例
如果Harbor已在运行,请停止并删除现有实例。您的镜像数据保留在文件系统中
docker-compose down -v
6)重启harbor
最后,重启harbor
docker-compose up -d
4、注意
如果一切正常,打开浏览器并输入地址:https://yourdomain.com,它应该显示Harbor的用户界面。
在打开地址前请确认C:\Windows\System32\drivers\etc\hosts文件中已经增加ip与域名配置,ip为harbor服务器ip,地址为harbor.cfg中hostname
在具有Docker守护程序的计算机上,请确保不存在https://yourdomain.com的 “-insecure-registry”选项
如果您将端口443映射到另一个端口,那么您应该创建目录/etc/docker/certs.d/yourdomain.com:port(或您的注册表主机IP:端口)