【发布时间】:2018-02-02 00:44:07
【问题描述】:
我想在docker容器中设置主从redis;我想在slave的容器中使用redis.conf;
测试环境:win7+Docker快速启动终端;
开始前,创建三个文件redis-6379、redis-6380、redis-6381到这个路径:'~/Desktop/redis/';然后创建redis.conf foreach文件;(使用官方配置);然后使用Docker 快速入门运行命令:
cp -rf ~/Desktop/redis/ /usr/local/
我在以下步骤中执行此操作:
1、修改redis.conf (redis-6381/redis-6380)
slaveof 172.17.0.2 6379
2、指定这个redis.conf
docker run -v /usr/local/redis/redis-6381/redis.conf:/usr/local/etc/redis/redis.conf --name redis-6381 -p 6381:6379 -d redis redis-server /usr/local/etc/redis/redis.conf
docker logs 给我:配置加载;其实redis.conf没有效果; info replication show,这个redis仍然是master角色;
然后,我尝试了这种方式,它可以工作:
docker run --name redis-6381 -p 6381:6379 -d redis redis-server slaveof 172.17.0.2 6379
那么,为什么 redis.conf 不能工作?
【问题讨论】:
-
进入容器,看看
/usr/local/etc/redis/redis.conf是否有slaveof的值? -
'/usr/local/etc/redis/redis.conf' 为空;
-
这意味着您的主机上的
/usr/local/redis/redis-6381/redis.conf不存在 -
这就是问题所在;我在我的主机上使用命令 'vim /usr/local/redis/redis-6381/redis.conf`;这个文件存在,内容正确;
-
你在用什么?用于 mac 的 Docker ?添加您的基础架构详细信息