gpt4 book ai didi

redis - Docker Redis CLI 超时

转载 作者:可可西里 更新时间:2023-11-01 11:01:14 26 4
gpt4 key购买 nike

我有一个在 docker 容器中运行的 Redis 服务,但是当连接到它时,光标没有返回。

当使用 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

没有“确定”,终端只是挂起,直到我按下 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

我尝试修改从容器到主机的不同端口绑定(bind),但结果始终相同 - cli 挂起。

发出像“help”这样的命令似乎工作正常

% 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>

非常感谢有关此问题的任何建议或提示。

谢谢!

最佳答案

对此的修复是需要 Firehol (iptables) 规则:

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

关于redis - Docker Redis CLI 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21225390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com