主从 Keeplive

环境准备

启动三个docker centos7.9镜像并工作在同一网络

docker网络配置

docker network create --driver bridge --subnet 172.30.0.0/24 mysql-net 
5a302d54c128084ebeea164911e7bd1aebd9db7a38ade97a77d85ac1995509ad

mysql1/2/3使用172.30.0.11/12/13,VIP用172.30.0.200

创建三个持久化容器

docker volume create mysql1_data
docker volume create mysql2_data
docker volume create mysql3_data

docker run -d --name mysql1 --hostname mysql1 --net mysql-net --ip 172.30.0.11 \
  --cap-add=NET_ADMIN --cap-add=NET_RAW \
  --sysctl net.ipv4.ip_forward=1 --sysctl net.ipv4.conf.all.rp_filter=0 \
  --mount source=mysql1_data,target=/var/lib/mysql \
  --restart unless-stopped \
  centos:7 tail -f /dev/null

docker run -d --name mysql2 --hostname mysql2 --net mysql-net --ip 172.30.0.12 \
  --cap-add=NET_ADMIN --cap-add=NET_RAW \
  --sysctl net.ipv4.ip_forward=1 --sysctl net.ipv4.conf.all.rp_filter=0 \
  --mount source=mysql2_data,target=/var/lib/mysql \
  --restart unless-stopped \
  centos:7 tail -f /dev/null

docker run -d --name mysql3 --hostname mysql3 --net mysql-net --ip 172.30.0.13 \
  --cap-add=NET_ADMIN --cap-add=NET_RAW \
  --sysctl net.ipv4.ip_forward=1 --sysctl net.ipv4.conf.all.rp_filter=0 \
  --mount source=mysql3_data,target=/var/lib/mysql \
  --restart unless-stopped \
  centos:7 tail -f /dev/null

测试网络

docker exec -it mysql1 bash
ping -c 2 172.30.0.12
ping -c 2 172.30.0.13
[root@mysql1 /]# ping -c 2 172.30.0.12
PING 172.30.0.12 (172.30.0.12) 56(84) bytes of data.
64 bytes from 172.30.0.12: icmp_seq=1 ttl=64 time=0.184 ms
64 bytes from 172.30.0.12: icmp_seq=2 ttl=64 time=0.116 ms

--- 172.30.0.12 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1040ms
rtt min/avg/max/mdev = 0.116/0.150/0.184/0.034 ms
[root@mysql1 /]# ping -c 2 172.30.0.13
PING 172.30.0.13 (172.30.0.13) 56(84) bytes of data.
64 bytes from 172.30.0.13: icmp_seq=1 ttl=64 time=0.154 ms
64 bytes from 172.30.0.13: icmp_seq=2 ttl=64 time=0.090 ms

--- 172.30.0.13 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1004ms
rtt min/avg/max/mdev = 0.090/0.122/0.154/0.032 

系统配置

docker exec -it mysql1 bash 
# 源配置
# 进入 yum 源目录 / Enter yum repo directory
mkdir -p /etc/yum.repos.d/bak
mv -f /etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/bak/ 2>/dev/null || true

cat >/etc/yum.repos.d/CentOS-Vault.repo <<'EOF'
[base]
name=CentOS-7.9.2009 - Base (vault)
baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

[updates]
name=CentOS-7.9.2009 - Updates (vault)
baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

[extras]
name=CentOS-7.9.2009 - Extras (vault)
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
EOF
# 对 mysql2/mysql3 同样执行

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录