ubuntu搭建docker harbor实录
一、搭建前提
一台2C2G ubuntu 18.04.6版本主机
配置好网络、ntp,关闭ufw
二、搭建步骤
1、安装docker engine、docker-compose等
设置 Docker 的存储库
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
安装docker包
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
(可选)验证docker安装完成
docker run hello-world #删除docker命令 #docker rm [container name] #docker image rm [image name]
下载harbor安装包
下载并解压安装包
到Harbor releases 页面.
Releases · goharbor/harbor (github.com)
下载在线或离线安装包(本次选择离线安装包)
解压压缩包:
cd && mkdir harbor-install && cd harbor-install
#采用任何手段上传harbor-offline-installer-v2.10.3.tgz包到目录下,例如:
rz harbor-offline-installer-v2.10.3.tgz
#解压
tar -xzvf harbor-offline-installer-v2.10.3.tgz
配置Harbor https准入
生成证书颁发机构证书
官方文档
生成 CA 证书私钥:
openssl genrsa -out ca.key 4096
生成 CA 证书:
#生成一个新的随机数文件 openssl rand -out /root/.rnd 2048 chmod 600 /root/.rnd #生成 CA 证书 openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=lsx.com" -key ca.key -out ca.crt
生成服务器证书
生成私钥:
openssl genrsa -out lsx.com.key 4096
生成证书签名请求 (CSR):
#根据你的组织情况调整-subj
选项中的数值。如果你使用完全限定域名(FQDN)连接你的 Harbor 主机,你必须将其指定为通用名称(CN)属性,并在密钥和证书签名请求(CSR)文件名中使用它。
openssl req -sha512 -new \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=lsx.com" -key lsx.com.key -out lsx.com.csr
生成x509 v3 扩展文件:
#无论是使用 FQDN 还是 IP 地址连接到 Harbor 主机,都必须创建此文件,以便为 Harbor 主机生成符合使用者备用名称 (SAN) 和 x509 v3 扩展要求的证书。替换条目以反映您的域。 cat > v3.ext <<-EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1=lsx.com DNS.2=lsx DNS.3=k8s-harbor EOF
使用该文件为您的 Harbor 主机生成证书:
#将 CSR 和 CRT 文件名替换为 Harbor 主机名。 openssl x509 -req -sha512 -days 3650 \ -extfile v3.ext \ -CA ca.crt -CAkey ca.key -CAcreateserial \ -in lsx.com.csr \ -out lsx.com.crt
向 Harbor 和 Docker 提供证书
将服务器证书和密钥复制到 Harbor 主机上的 certficates 文件夹中:
mkdir -p /data/cert/
cp lsx.com.crt /data/cert/ cp lsx.com.key /data/cert/
转换 lsx.com.crt 为lsx.com.cert, 提供docker使用:
#Docker守护程序将.crt文件解释为CA(证书颁发机构)证书,将.cert文件解释为客户端证书: openssl x509 -inform PEM -in lsx.com.crt -out lsx.com.cert
要将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中,(确保适当的文件夹已经存在)
cp lsx.com.cert /etc/docker/certs.d/lsx.com/ cp lsx.com.key /etc/docker/certs.d/lsx.com/ cp ca.crt /etc/docker/certs.d/lsx.com/
#如果你将默认的 Nginx 端口 443 映射到不同的端口,你需要创建相应的目录/etc/docker/certs.d/yourdomain.com:port
或者/etc/docker/certs.d/harbor_IP:port
。
重启docker
systemctl restart docker
配置 Harbor YML 文件
cd /root/harbor-install/harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
#修改hostname、证书地址
安装harbor
./install
至此搭建完成。
harbor官网: