演示环境:win7+docker toolbox
1、自定义配置文件
首先在Windows环境下准备好配置文件redis
然后打开Quickstart终端输入命令:
cp -rf ~/Desktop/redis/ /usr/local/
这一步是把我们准备好的配置文件夹拷贝到 virtualbox的Linux里;如果是单个文件可以使用命令:cp -r 路径/文件 路径/文件;
6379的配置就是官方配置文件;6380和6381的配置文件是加了一行:slaveof
关于配置文件有几点注意的:
1、后台运行;使用no;
2、日志配置;使用空字符串;
2、运行redis容器:
docker run -v /usr/local/redis/redis-6379/redis.conf:/usr/local/etc/redis/redis.conf --name redis-6379 -p 6379:6379 -d hub.c.163.com/library/redis redis-server /usr/local/etc/redis/redis.conf
docker run -v /usr/local/redis/redis-6380/redis.conf:/usr/local/etc/redis/redis.conf --name redis-6380 -p 6380:6379 -d hub.c.163.com/library/redis redis-server /usr/local/etc/redis/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 hub.c.163.com/library/redis redis-server /usr/local/etc/redis/redis.conf
查了资料说:/usr/local/etc/redis/redis.conf 这个路径是redis官方镜像的Dockfile里面的,所以这里固定使用这个路径;另外一种方法是修改Dockerfile
3、Win7环境下的问题解决
win7环境下验证了一下,发现slaveof没有生效!网上也没找到资料,然后问了一下stackoverflow的大神们,他们无私的指导下
原因是环境问题:win7+Docker Quickstart Terminal;在终端里挂载我们自己的配置的时候,我们使用cp把配置拷贝到了,但是这个是无效的,必须直接挂载我们win7里的配置文件才可以生效!而上面2是正式的生产环境Linux的正确命令;win7终端的正确命令应该是:
docker run -v ~/Desktop/redis/redis-6381/redis.conf:/usr/local/etc/redis/redis.conf --name redis-6381 -p 6381:6379 -d hub.c.163.com/library/redis redis-server /usr/local/etc/redis/redis.conf
其他
1、查看日志
docker logs --tail=10 redis-6380
docker logs -f -t --since="2017-05-31" --tail=10 name
--since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
-f : 查看实时日志
-t : 查看日志产生的日期
-tail=10 : 查看最后的10条日志。
name : 容器名称
2、直接命令
docker run -v /usr/local/redis/redis-6381/redis.conf:/usr/local/etc/redis/redis.conf --name redis-6381 -p 6381:6379 -d hub.c.163.com/library/redis redis-server /usr/local/etc/redis/redis.conf slaveof 172.17.0.2 6379
文档: