一、环境准备
- redis:3.2镜像
二、构建步骤
- 创建网络
建立docker容器之前通信网络,doker容器之前通信方式有两种,一种是基于Docker Networking ,另一种基于Docker连接(link),区别如下:
- Docker networking 可以连接到不同宿主机的机器上
- 通过Docker networking连接的容器可以在无需更新连接的情况下,停止、启动或者重启容器。而使用连接,则肯能需要更新一些配置,或者重启Docker容器直接的连接
- 使用Docker networking,不必事先创建容器去连接它。同样,也不必关心容器的运行顺序。
docker network create redis-network
可以通过命令 docker network ls查看是否创建成功
[root@localhost redis]# docker network ls
NETWORK ID NAME DRIVER SCOPE
a8f114412dab adc_backend_default bridge local
490137535f8f adc_default bridge local
f4bdb396fe88 bridge bridge local
cf0831fa2009 host host local
6ad61f118b1d none null local
13997ac1e932 redis-network bridge local
f857358334a3 zookeeper_default bridge local
- 构建Redis 容器 ,构建目录为/home/dongzhi.wang/Develop/redis
分别创建三个文件夹 001 ,002 ,003,
每个文件夹中分别创建 conf 和data文件夹,并将事先准备好的redis.conf配置文件拷贝到conf目录下
目录结构如下:
[root@localhost redis]# ll
总用量 0
drwxr-xr-x. 4 root root 30 7月 18 14:16 001
drwxr-xr-x. 4 root root 30 7月 18 14:19 002
drwxr-xr-x. 4 root root 30 7月 18 14:31 003
001目录为master目录,结构如下:
[root@localhost 001]# ls
conf data
- cd /home/dongzhi.wang/Develop/redis/001 下,执行构建命令
docker run --network redis-network -v $PWD/conf/redis.conf:/usr/local/etc/redis/redis.conf -p 8085:6379 --privileged=true --name redis-container-001 -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf
其它两个节点类似:
docker run --network redis-network -v $PWD/conf/redis.conf:/usr/local/etc/redis/redis.conf -p 8099:6379 --privileged=true --name redis-container-002 -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf
docker run --network redis-network -v $PWD/conf/redis.conf:/usr/local/etc/redis/redis.conf -p 8098:6379 --privileged=true --name redis-container-003 -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf
- 配置从节点的master节点(此处为redis-container-001为主节点,其它为从节点)
备注:允许其它节点连接,需要更改redis.conf配置文件,将每个节点的 bind 配置项 改为允许所有连接接入
bind *
- 最后利用slaveof命令依次配置 slave节点的master节点
进入redis-container-002容器
docker exec -it redis-container-002 redis-cli
执行命令:
slaveof redis-container-001 8085
其中 redis-container-001为容器名称,8085为master端口
其它节点配置类似
三、验证
在mater节点,添加数据,查看slave节点是否有数据,如果有,则搭建成功