【发布时间】:2014-02-09 02:44:57
【问题描述】:
我有一个 Redis 服务在一个 docker 容器中运行,但是当连接到它时,光标没有返回。
当使用 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>
非常感谢有关此问题的任何建议或提示。
谢谢!
【问题讨论】: