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