在自定义文件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/redis.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并映射空白文件。
- supervisord如何在Docker容器内停止进程(陷阱终止信号)
- 在Docker数据容器vs卷中部署Web应用程序
- 使用docker在命令行上指定logstashconfiguration
- 如何用supervisord监视nginx和cron?
- 从docker镜像获取dockerfile / docker命令
- 在我运行一个java程序后,Docker停止响应
- 使用Vagrant顶部的docker映像构buildRedis群集:无法ping机器
- Docker Swarm模式:并非所有的VIP服务工作。 获得几个VIP超时
- Docker-machine create:预创build检查错误:“Hyper-v命令必须以pipe理员身份运行”