目录
4.1 使用nginx-proxy.crushlinux.com无法登录
5.1 使用nginx-proxy.crushlinux.com登录异常,如上
一、安装Docker服务
1、环境准备
1.1 关闭防火墙
systemctl disable --now firewalld
setenforce 0
1.2 修改主机名
ip r g 1
hostnamectl set-hostname harbor01 && bash
hostnamectl set-hostname harbor02 && bash
hostnamectl set-hostname nginx-proxy && bash
1.3 修改hosts文件
cat >>/etc/hosts <<'eof'
10.4.7.11 harbor01.crushlinux.com harbor01
10.4.7.12 harbor02.crushlinux.com harbor02
10.4.7.13 nginx-proxy.crushlinux.com nginx-proxy
eof
scp /etc/hosts harbor02:/etc/
2、安装docker
情况说明:准备三台虚拟机,安装Docker服务
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce
3、配置和启动docker
cat >/etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://41q9iv61.mirror.aliyuncs.com",
"https://docker.cloudmessage.top",
"https://registry.docker-cn.com",
"https://docker.nju.edu.cn",
"https://registry.cn-hangzhou.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com",
"http://hub-mirror.c.163.com",
"http://f1361db2.m.daocloud.io"
],
"insecure-registries": ["harbor01.crushlinux.com","harbor02.crushlinux.com","nginx-proxy.crushlinux.com"]
}
EOF
systemctl daemon-reload
systemctl enable --now docker
scp harbor01:/etc/docker/daemon.json /etc/docker/
systemctl daemon-reload
systemctl enable --now docker
二、安装harbor服务
1、harbor01操作
1.1 安装docker-compose和解压缩文件
ls -lh
chmod +x docker-compose-1.24.1
mv docker-compose-1.24.1 /usr/local/bin/docker-compose
docker-compose --version
tar xf harbor-offline-installer-v2.3.0.tgz -C /usr/local
scp -rq /usr/local/harbor harbor02:/usr/local
scp /usr/local/bin/docker-compose harbor02:/usr/local/bin
1.2 安装和启动harbor
cp /usr/local/harbor/{harbor.yml.tmpl,harbor.yml}
sed -i -e '13,18 s/^/#/' \
-e '/^hostname/s/reg.mydomain.com/harbor01.crushlinux.com/g' \
/usr/local/harbor/harbor.yml
grep ^hostname /usr/local/harbor/harbor.yml
sed -n '13,18p' /usr/local/harbor/harbor.yml
grep harbor_admin_password /usr/local/harbor/harbor.yml
sh /usr/local/harbor/install.sh --with-trivy &>install.txt
docker-compose -f /usr/local/harbor/docker-compose.yml ps
2、harbor02操作
1.2 安装和启动harbor
docker-compose --version
cp /usr/local/harbor/{harbor.yml.tmpl,harbor.yml}
sed -i -e '13,18 s/^/#/' \
-e '/^hostname/s/reg.mydomain.com/harbor02.crushlinux.com/g' \
/usr/local/harbor/harbor.yml
grep ^hostname /usr/local/harbor/harbor.yml
sed -n '13,18p' /usr/local/harbor/harbor.yml
grep harbor_admin_password /usr/local/harbor/harbor.yml
sh /usr/local/harbor/install.sh --with-trivy &>install.txt
docker-compose -f /usr/local/harbor/docker-compose.yml ps
三、安装nginx服务
yum install -y nginx
四、nginx配置文件报错
1、报错1
1.1 upstream位置不对
cp -a /etc/nginx/nginx.conf{,.bak}
vim /etc/nginx/nginx.conf
...
upstream harbor_pool {
server harbor01.crushlinux.com weight=1 max_fail=3 fail_timeout=10s;
server harbor02.crushlinux.com weight=1 max_fail=3 fail_timeout=10s;
}
...
http {
...
}
server {
listen 80 default_server;
server_name nginx-proxy.crushlinux.com;
...
location / {
proxy_pass http://harbor_pool;
}
}
...
grep -A10 upstream /etc/nginx/nginx.conf
grep -A10 default_server /etc/nginx/nginx.conf
nginx -t
1.2 解决方法
vim /etc/nginx/nginx.conf
...
http {
...
upstream harbor_pool {
server harbor01.crushlinux.com weight=1 max_fail=3 fail_timeout=10s;
server harbor02.crushlinux.com weight=1 max_fail=3 fail_timeout=10s;
}
}
server {
listen 80 default_server;
server_name nginx-proxy.crushlinux.com
...
location / {
proxy_pass http://harbor_pool;
}
}
...
grep -A15 upstream /etc/nginx/nginx.conf
2、报错2
2.1 max_fail单词拼错,应为max_fails
nginx -t
grep max_fail /etc/nginx/nginx.conf
2.1 解决方法
sed -i 's/max_fail/max_fails/g' /etc/nginx/nginx.conf
grep max_fails /etc/nginx/nginx.conf
3、报错3
3.1 无法解析域名
nginx -t
cat /etc/hosts
3.2 解决方法
scp 10.4.7.11:/etc/hosts /etc/
cat /etc/hosts
nginx -t
systemctl enable --now nginx
netstat -lntup |grep 80
4、报错4
4.1 使用nginx-proxy.crushlinux.com无法登录
docker login -uadmin -pHarbor12345 nginx-proxy.crushlinux.com
4.2 解决方法
grep -A1 proxy_pass /etc/nginx/nginx.conf
sed -i '/proxy_pass/a\ proxy_set_header Host $Host;' /etc/nginx/nginx.conf
grep -A1 proxy_pass /etc/nginx/nginx.conf
nginx -s reload
docker login -uadmin -pHarbor12345 nginx-proxy.crushlinux.com
5、报错5
5.1 使用nginx-proxy.crushlinux.com登录异常,如上
docker login -uadmin -pHarbor12345 nginx-proxy.crushlinux.com
5.2 解决方法
grep -A3 upstream /etc/nginx/nginx.conf
sed -i '/upstream/a\ ip_hash;' /etc/nginx/nginx.conf
grep -A3 upstream /etc/nginx/nginx.conf
nginx -s reload
docker login -uadmin -pHarbor12345 nginx-proxy.crushlinux.com
五、安装dns服务
1、安装dns服务
yum install -y bind*
2、配置named.conf等文件
cat >/var/named/crushlinux.com <<'eof'
$TTL 86400
@ SOA crushlinux.com. admin.crushlinux.com. (
20241223
3H
15M
1W
1D
)
IN NS ns.crushlinux.com.
ns IN A 10.4.7.11
harbor01 IN A 10.4.7.11
harbor02 IN A 10.4.7.12
nginx-proxy IN A 10.4.7.13
eof
cat >/etc/named.conf <<'eof'
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "crushlinux.com" IN {
type master;
file "crushlinux.com";
};
eof
3、检测配置文件和启动服务
named-checkconf -z /etc/named.conf
named-checkzone crushlinux.com /var/named/crushlinux.com
systemctl enable --now named
netstat -lntup |grep 53
4、修改DNS服务地址进行测试
grep DNS /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/8.8.8.8/10.4.7.13/g' /etc/sysconfig/network-scripts/ifcfg-eth0
grep DNS !$
systemctl restart network
cat /etc/resolv.conf
nslookup harbor01.crushlinux.com
六、Harbor仓库的复制与同步
1、配置DNS服务
sed -i 's/8.8.8.8/10.4.7.13/g' /etc/sysconfig/network-scripts/ifcfg-eth0
grep DNS !$
systemctl restart network
cat /etc/resolv.conf