网络方式 --net host

据说 windows mac上这样用无效,我测试了下这样真的无效 docker run -d —name redis-node-6 —net host -v /D/docker/redis-share/redis-node-6/redis.conf:/etc/redis/redis.conf —privileged=true redis:6.0.8 redis-server /etc/redis/redis.conf —cluster-enabled yes —appendonly yes —port 6006

  1. 不管怎能操作都无法进行外部连接

网络方式-p 6006:6006 -p 16006:16006

docker run -d —name redis-node-6 -p 6006:6006 -p 16006:16006 -v /D/docker/redis-share/redis-node-6/redis.conf:/etc/redis/redis.conf —privileged=true redis:6.0.8 redis-server /etc/redis/redis.conf —cluster-enabled yes —appendonly yes —port 6006

通过配置路由表实现ip互通

我没有配置成功

  • 查看路由表 route print
  • 查看dockerIP ipconfig 太网适配器 vEthernet (WSL)
  • 添加路由 route -p add 172.17.0.0 MASK 255.255.255.0 xxx

通过配置文件固定IP

我操作成功

  • 修改redis.cnf 配置文件中的 **cluster-announce-ip**
    • cluster-announce-ip 192.168.0.65 (宿主机IP)
  • 挂载和使用配置文件官方配置文件
    • /D/docker/redis-share/redis-node-6/redis.conf:/etc/redis/redis.conf redis:6.0.8 redis-server /etc/redis/redis.conf

特别说明

Redis集群中的各个节点,需要开放一个端口,同其他节点建立连接,用于接收心跳数据等操作。也就是说,redis-node1节点,开放6379端口供client连接时,同时提供16379端口(10000 + 6379),供其他Redis节点连接。