第一步:安装 dokcer以及docker-compose
1.准备使用yum仓库的方式安装docker
#下载docker所需工具
sudo yum install -y yum-utils #安装yum-utils是为了提供yum-config-manager工具
#下载docker-yum仓库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#默认未启用,配置启用仓库
sudo yum-config-manager --enable docker-ce-nightly
#<可选>启用测试仓库
sudo yum-config-manager --enable docker-ce-test
#<可选>安装最新版本的docker
sudo yum install docker-ce docker-ce-cli containerd.io
#查看可获得的docker版本
yum list docker-ce --showduplicates | sort -r
#安装指定版本的docker
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
#配置docker daemon.json
cat /etc/docker/daemon.json
{
"registry-mirrors": ["http://harbor.zxz.com", "https://harbor.zxz.com"], #镜像仓库
"insecure-registries":["harbor.zxz.com"], #可使用非安全url
"max-concurrent-downloads": 10, #最大下载数
"live-restore": true,
"experimental": true,
"metrics-addr" : "192.168.1.120:9323", #监控可以调用该指标地址
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "500m",
"max-file": "5"
},
"data-root": "/data/docker" #docker镜像指定放置目录
}
#启动docker
sudo systemctl start docker
#设置开机自启动
sudo systemctl enable docker
2.安装docker-compose
#安装稳定版的docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#配置执行权限
sudo chmod +x /usr/local/bin/docker-compose
第二步:安装harbor
#创建harbor安装目录
mkdir -p /data/harbor && cd /data/harbor
#下载harbor离线安装包
wget https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz
#解压安装包
tar -xf harbor-offline-installer-v2.4.1.tgz
#进入安装目录
cd harbor
#修改配置文件
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
...
5 hostname: harbor.zxz.com
17 certificate: /data/harbor/ssl/tls.cert
18 private_key: /data/harbor/ssl/tls.key
34 harbor_admin_password: 123456
...
#创建ssl目录并配置ssl证书
mkdir /data/harbor/ssl && cd /data/harbor/ssl
openssl genrsa -out tls.key 2048
openssl req -new -x509 -key tls.key -out tls.cert -days 360 -subj /CN=*.zxz.com
#开始安装
./install.sh
## 推送镜像到harbor
echo '192.168.1.120 harbor.zxz.com' >> /etc/hosts
docker tag nginx:latest harbor.boge.com/library/nginx:latest
docker push harbor.zxz.com/library/nginx:1.18.0-alpine
#在其他节点上面拉取harbor镜像
#在集群每个 node 节点进行如下配置,如果节点数量比较多的情况下,将步骤写成shell脚本使用ansible统一发布执行或者使用pssh和pscp工具<个人推荐,操作较ansible简单,安装epel源即可下载>
cat batchsentssl.sh #我这里使用pssh和pscp工具写的脚本批量操作
#!/bin/bash
for i in {10..50}
do
echo "root@192.168.1.$i" >> hosts.txt
done
pssh -h host.txt -A -O "StrictHostKeyChecking no" -i "sudo mkdir -p /etc/docker/certs.d/harbor.zxz.com"
pscp -h host.txt -A -O "StrictHostKeyChecking no" /data/harbor/ssl/tls.cert /etc/docker/certs.d/harbor.boge.com/ca.crt
rm -rf hosts.txt
#随意一个节点测试拉取镜像
docker pull harbor.zxz.com/library/nginx:latest
## 重启harbor
cd /data/harbor
docker-compose down -v
docker-compose up -d
docker-compose ps