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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM