具有自定义文件redis.conf的docker容器中的Redis不起作用

时间:2017-08-24 08:19:16

标签: docker redis

我想在docker容器中设置master-slave redis;我想在slave的容器中使用redis.conf;

测试环境:win7 + Docker快速启动终端;

在开始之前,创建三个文件redis-6379,redis-6380,redis-6381到这个路径:'〜/ Desktop / redis /';然后创建redis.conf foreach文件;(使用官方配置);然后使用Docker快速入门运行命令:

cp -rf ~/Desktop/redis/ /usr/local/

files content

我在以下步骤中这样做:

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仍然是主角色;

然后,我尝试了这种方式,它有效:

docker run --name redis-6381 -p 6381:6379 -d redis redis-server slaveof 172.17.0.2 6379

那么,为什么redis.conf不起作用?

1 个答案:

答案 0 :(得分:1)

您需要使用-v ~/Desktop/redis/redis-6381/redis.conf:/usr/local/etc/redis/r‌​edis.conf来代替/ usr / local`

问题是,当您在Windows上工作时,Docker会自动将一些驱动器共享到运行docker的VM。所以你的路径会起作用。

但MingW可能会将/usr/local文件夹托管在其他地方,并在/usr/处显示给您。我不使用Windows,因此无法为您确认。

当您使用-v /usr/local/redis/redis-6381/redis.conf:/usr/local/etc/redis/redis.conf时,主机路径不会转换内部泊坞窗,因此会创建并映射空白文件。