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

我想在Docker容器中设置主从redis, 我想在slave的容器中使用redis.conf;

testing环境:win7 + Docker快速入门terminal;

在开始之前,创build三个文件redis-6379,redis-6380,redis-6381到这个path:'〜/ Desktop / redis /';然后创buildredis.conf foreach文件;(使用官方configuration);然后用Docker Quickstart运行命令:

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日志给我:configuration加载;其实redis.conf没有影响; 信息复制显示,这redis仍然是主angular色;

然后,我试着这样,它的工作原理:

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

那么,为什么redis.conf不能工作?

你需要使用-v ~/Desktop/redis/redis-6381/redis.conf:/usr/local/etc/redis/r‌​edis.conf而不是从/ usr / local

问题是,在Windows上工作时,Docker会自动将一些驱动器共享到Docker运行的VM。 所以你的path将工作。

但是,MingW可能会将/usr/local文件夹托pipe在其他地方,并将其显示给/usr/ 。 我不使用Windows,所以无法为你确认。

当您使用-v /usr/local/redis/redis-6381/redis.conf:/usr/local/etc/redis/redis.conf ,主机path不会翻译内部泊坞窗,因此会创build并映射空白文件。