环境准备※
启动三个docker centos7.9镜像并工作在同一网络
docker网络配置※
docker network create --driver bridge --subnet 172.30.0.0/24 mysql-net
5a302d54c128084ebeea164911e7bd1aebd9db7a38ade97a77d85ac1995509admysql1/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 同样执行