1.安装docker
https://blog.csdn.net/qq_26531719/article/details/105865484
2.安装docker-compose
2.1下载二进制文件
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
注:这块可以更换需要的版本
2.2赋予二进制文件可执行权限
chmod +x /usr/local/bin/docker-compose
2.3根据自己的情况决定是否安装命令补全功能
yum install bash-completion
curl –L
https://raw.githubusercontent.com/docker/compose/1.16.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
2.4测试是否安装成功
docker-compose --version
3.安装harbor
3.1下载
wget -P /usr/local/src/ https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-online-installer-v1.2.0.tgz
注:可以更换为自己需要的版本
3.2解压
tar zxf harbor-online-installer-v1.2.0.tgz -C /usr/local/
3.3修改配置文件
cd harbor harbor为解压后的目录
3.3.1 http访问方式
vim harbor.cfg
hostname 修改为机器的ip
harbor_admin_password 为页面访问登陆使用的密码,用户名为admin
3.3.2https访问方式
修改hostname为域名,修改url协议为https,ssl_cert和ssl_cert_key 为生成的证书。
3.3.3https配置
生成证书颁发机构证书
1.生成CA证书私钥。
openssl genrsa -out ca.key 4096
2.生成CA证书。
调整-subj选项中的值以反映您的组织。如果使用FQDN连接Harbor主机,则必须将其指定为通用名称(CN)属性。
- openssl req -x509 -new -nodes -sha512 -days 3650 \
- -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
- -key ca.key \
- -out ca.crt
生成服务器证书
证书通常包含一个.crt文件和一个.key文件,例如yourdomain.com.crt和yourdomain.com.key。
1.生成私钥。
openssl genrsa -out yourdomain.com.key 4096
2.生成证书签名请求(CSR)。
调整-subj选项中的值以反映您的组织。如果使用FQDN连接Harbor主机,则必须将其指定为公用名(CN)属性,并在密钥和CSR文件名中使用它。
- openssl req -sha512 -new \
- -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
- -key yourdomain.com.key \
- -out yourdomain.com.csr
3.生成一个x509 v3扩展文件。
无论您使用FQDN还是IP地址连接到Harbor主机,都必须创建此文件,以便可以为您的Harbor主机生成符合主题备用名称(SAN)和x509 v3的证书扩展要求。替换DNS条目以反映您的域。
- 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
4.使用该v3.ext文件为您的Harbor主机生成证书。
将yourdomain.comCRS和CRT文件名中的替换为Harbor主机名。
- openssl x509 -req -sha512 -days 3650 \
- -extfile v3.ext \
- -CA ca.crt -CAkey ca.key -CAcreateserial \
- -in yourdomain.com.csr \
- -out yourdomain.com.crt
提供证书给Harbor和Docker
1.将服务器证书和密钥复制到Harbor主机上的certficates文件夹中。
cp yourdomain.com.crt /data/cert/
cp yourdomain.com.key /data/cert/
2.转换yourdomain.com.crt为yourdomain.com.cert,供Docker使用。
Docker守护程序将.crt文件解释为CA证书,并将.cert文件解释为客户端证书。
openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert
3.将服务器证书,密钥和CA文件复制到Harbor主机上的Docker certificate文件夹中。您必须首先创建适当的文件夹。
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/
如果将默认nginx端口443 映射到其他端口,请创建文件夹/etc/docker/certs.d/yourdomain.com:port或/etc/docker/certs.d/harbor_IP:port。
4.重新启动Docker Engine。
systemctl restart docker
5.以下示例为证书的目录结构
/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
部署或重新配置Harbor
如果您已经使用HTTP部署了Harbor,并希望将其重新配置为使用HTTPS,请执行以下步骤。
1.运行prepare脚本重新读取环境信息
./prepare
2.如果Harbor正在运行,请停止并删除现有实例。
docker-compose down -v
3.重启harbor:
docker-compose up -d
验证HTTPS连接
为Harbor设置HTTPS之后,您可以通过执行以下步骤来验证HTTPS连接。
- 打开浏览器,然后输入https://yourdomain.com。它应该显示Harbor界面。
3.5执行安装
./install.sh
3.6启动命令
查看Harbor # docker-compose ps 启动Harbor # docker-compose start 停止Harbor # docker-comose stop 重启Harbor # docker-compose restart |