2014-01-20 73 views
1

我有一個在docker容器內部運行的Redis服務,但是當連接到它時不會返回遊標。Docker Redis CLI超時

當使用redis-cli時,終端只是發出命令掛起,我希望有人能指出我要出錯的地方。

不是看到正規的Redis-CLI樣的輸出:

% redis-cli 
redis 127.0.0.1:6379> set docker awesome 
OK 
redis 127.0.0.1:6379> get docker 
"awesome" 
redis 127.0.0.1:6379> 

這是我所看到的:

% redis-cli -p 49156 
redis 127.0.0.1:49156> set docker awesome 

有沒有 「OK」 和終端只是掛起,直到我按Ctrl-C它。

我從以下http://docs.docker.io/en/latest/examples/running_redis_service/

這裏docker.io說明是我的Dockerfile:

FROM  ubuntu:12.10 
RUN   apt-get update 
RUN   apt-get -y install redis-server 
EXPOSE  6379 
ENTRYPOINT ["/usr/bin/redis-server"] 

我打造的形象與:

sudo docker build -t rudijs/redis . 

我跑了圖像的一個實例附:

sudo docker run -d -p 6379 -name redis rudijs/redis 

% sudo docker ps        
CONTAINER ID  IMAGE     COMMAND    CREATED    STATUS    PORTS      NAMES 
3888fa49b605  rudijs/redis:latest /usr/bin/redis-serve 5 seconds ago  Up 4 seconds  0.0.0.0:49156->6379/tcp redis 

暴露容器Redis的端口是:

% sudo docker port redis 6379 
0.0.0.0:49156 

% redis-cli -p 49156 
redis 127.0.0.1:49156> set docker awesome 

我試着從容器用不同的端口綁定修修補補到主機上,但結果總是相同的 - CLI掛起。

頒發命令狀「幫助」似乎做工精細

% redis-cli -p 49156 
redis 127.0.0.1:49156> help 
redis-cli 2.2.12 
Type: "help @<group>" to get a list of commands in <group> 
     "help <command>" for help on <command> 
     "help <tab>" to get a list of possible help topics 
     "quit" to exit 
redis 127.0.0.1:49156> 

如果我只是讓它坐在我得到一個超時:

% redis-cli -p 49156 
redis 127.0.0.1:49156> set docker awesome 
Error: Connection reset by peer 
(248.52s) 
redis 127.0.0.1:49156> 

的任何意見或建議這個問題大加讚賞。

謝謝!

回答

0

這種情況的修復程序Firehol被需要(iptables的)規則:

interface docker0 interface1 src "172.17.0.0/16" dst 172.17.42.1 
    server all accept 
    client all accept