IP分类
主机1:192.168.127.129
主机1docker:172.16.200.1/24
docker1的emqx:172.16.111.11
主机2:192.168.127.130
主机2docker2:172.16.201.1/24
docker2emqx:172.16.222.22
修改docker的ip
主机1
修改daemon.json文件
1 | vim /ect/docker/daemon.json |
内容大致如下↓
1 | { |
主机2
修改daemon.json文件
1 | vim /ect/docker/daemon.json |
内容大致如下↓
1 | { |
然后重启docker。
ubuntu开启路由,加入路由规则
开启IP转发
执行以下指令
1 | sysctl net.ipv4.ip_forward=1 |
或者进入 /etc/sysctl.conf
添加↓
1 | net.ipv4.ip_forward=1 |
下载相关工具
安装 iptables-persistent
1 | apt install iptables-persistent |
将ip规则追加到rules.v4中
1 | iptables-save > /etc/iptables/rules.v4 |
还原iptables配置。
1 | iptables-restore < /etc/iptables/rules.v4 |
主机1
依次执行以下指令↓
1 | iptables -F //清除所有的iptables规则 |
添加路由↓
1 | iptables -t nat -A POSTROUTING -s 172.16.111.0/24 -o ens33 -j MASQUERADE |
另一个容器的路由
1 | ip route add 172.172.222.0/24 via 192.168.127.130 |
主机2
依次执行以下指令↓
1 | iptables -F //清除所有的iptables规则 |
添加路由↓
1 | iptables -t nat -A POSTROUTING -s 172.16.222.0/24 -o ens33 -j MASQUERADE |
另一个容器的路由
1 | ip route add 172.172.111.0/24 via 192.168.127.129 |
docker配置
主机1
创建相应网关
1 | docker network create --subnet=172.16.111.0/24 emqxnet |
启动容器
1 | docker run -itd --name emqx11 --ip 172.16.111.11 --network=emqxnet -p 4369:4369 -p 18083:18083 -p 1883:1883 -p 8084:8084 -p 8883:8883 -p 8083:8083 -p 4370:4370 -p 5368:5368 -e EMQX_NAME=emqx -e EMQX_HOST=172.16.111.11 -e EMQX_CLUSTER__DISCOVERY_STRATEGY=static emqx/emqx:5.0.4 |
主机2
创建相应网关
1 | docker network create --subnet=172.16.222.0/24 emqxnet |
启动容器
1 | docker run -itd --name emqx22 --ip 172.16.222.22 --network=emqxnet -p 4369:4369 -p 18083:18083 -p 1883:1883 -p 8084:8084 -p 8883:8883 -p 8083:8083 -p 4370:4370 -p 5368:5368 -e EMQX_NAME=emqx -e EMQX_HOST=172.16.222.22 -e EMQX_CLUSTER__DISCOVERY_STRATEGY=static emqx/emqx:5.0.4 |
节点2加入集群
进入容器
1 | docker exec -it emqx22 /bin/bash |
加入节点
1 | ./bin/emqx_ctl cluster join emqx@172.16.111.11 |