一、环境准备
centos7 192.168.40.136
软件:docker-19.03.8.tgz、docker-compose-Linux-x86_64、harbor-offline-installer-v1.10.2.tgz
二、安装docker、docker-compose
由于这台服务器是公司内网服务器,不能上外网,所以使用离线安装
1.1 安装docker
(1)解压docker
tar -xvf docker-19.03.8.tgz
(2)复制二进制文件到/usr/bin目录下
cp docker/* /usr/bin/
(3)配置 docker.service文件
vi /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
(4)启动dockerd服务进程
systemctl daemon-reload
systemctl start docker.service
(5)查看docker版本
1.2 安装docker-compose
(1)下载docker-compose:https://github.com/docker/compose/releases/download/1.25.4/docker-compose-Linux-x86_64
(2)上传到服务器上,并重命名:mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
(3)添加可执行权限: chmod +x /usr/local/bin/docker-compose
(4)验证docker-compose
三、制作自签证书
由于harbor需要https访问,故需要制作自签证书。以下yourdomain.com为你要制作证书的域名,也可以为harbor服务器的IP地址。我的域名为HxHarbor.com
3.1、生成证书颁发机构证书
(1)生成CA证书私钥。
openssl genrsa -out ca.key 4096
(2)生成CA证书。
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
3.2、生成服务器证书
(1)生成私钥。
openssl genrsa -out yourdomain.com.key 4096
(2)生成证书签名请求(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
以上dns没有则不用配置
3.3、使用该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
3.4、提供证书给harbor和docker
转换yourdomain.com.crt为yourdomain.com.cert,供Docker使用
openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert
四、配置安装Harbor
4.1 解压harbor-offline-installer-v1.10.2.tgz
tar -xvf harbor-offline-installer-v1.10.2.tgz
4.2 配置Harbor
解压后我们可以看到harbor的目录下有一个harbor.yml的配置文件。我们需要做如下配置
hostname = yourdomain.com (我的域名为HxHarbor.com,故我设置为HxHarbor.com)
certificate: yourdomain.com.crt (为上一步生成的域名crt证书文件全路径)
private_key: yourdomain.com.key (为上一步生成的域名key证书文件全路径)
保存退出
4.3 配置证书信任
在所有需要登录的docker主机(包括harbor主机)将第3步生成的证书文件复制到以下目录
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/
4.4 安装Harbor
执行Harbor的install.sh
出现
✔ ----Harbor has been installed and started successfully.----
即安装成功
五、登录harbor
docker login yourdomain.com
输入账号密码。账号为admin,密码在harbor.yml里面有配置,默认为Harbor12345