Docker:使用自定义redis.conf运行redis容器(7)

演示环境: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

文档:

https://hub.docker.com/_/redis/

原文地址:https://www.cnblogs.com/xmai/p/7422486.html