Docker搭建Redis集群
1. 用docker的host模式创建Redis node1 node2 node3
docker的网络类型有:
None:不为容器配置任何网络功能,没有网络 --net=none
Container:与另一个运行中的容器共享Network Namespace,–net=container:containerID
Host:与主机共享Network Namespace,–net=host
Bridge:Docker设计的NAT网络模型(默认类型)
重点关注下Host类型:
host模式创建的容器没有自己独立的网络命名空间,是和物理机共享一个Network Namespace,并且共享物理机
的所有端口与IP。但是它将容器直接暴露在公共网络中,是有安全隐患的。
#创建node01
docker create --name redis-node01 --net host -v /data/redis-data/node01:/dataredis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-01.conf --port 6379
#创建node02
docker create --name redis-node02 --net host -v /data/redis-data/node02:/dataredis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-02.conf --port 6380
#创建node03
docker create --name redis-node03 --net host -v /data/redis-data/node03:/dataredis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-03.conf --port 6381
2. 启动容器创建集群
#启动容器
docker start redis-node01 redis-node02 redis-node03
#进入redis-node01容器进行操作
docker exec -it redis-node01 /bin/bash
#172.16.55.185是主机的ip地址 第一次进入
redis-cli --cluster create 172.16.55.185:6379 172.16.55.185:6380 172.16.55.185:6381 --cluster-replicas 0
#后面连接
redis-cli -c
3. 查看集群信息
127.0.0.1:6379> CLUSTER NODES
46e5582cd2d96a506955cc08e7b08343037c91d9 172.16.55.185:6380@16380 master - 0
1543766975796 2 connected 5461-10922
b42d6ccc544094f1d8f35fa7a6d08b0962a6ac4a 172.16.55.185:6381@16381 master - 0
1543766974789 3 connected 10923-16383
4c60f45d1722f771831c64c66c141354f0e28d18 172.16.55.185:6379@16379 myself,master - 0
1543766974000 1 connected 0-5460