我使用的是redis-server:最新的图像。我使用"docker run redis -it =“redis2”redis:1bash“命令进入容器。我看到默认情况下redis正在侦听端口: 6379。
Running in stand alone mode
Port: 6379
PID: 39
http://redis.io
[39] 01 Mar 09:03:45.669 # Server started, Redis version 2.8.4 [39] 01 Mar 09:03:45.669 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition.
要解决此问题,请将' vm.overcommit_memory =1‘添加到/etc/sysctl.conf,然后重新启动或运行命令'sysctl vm.overcommit_memory=1’以使其生效。39 01 Mar 09:03:45.669 *服务器现在已准备好接受端口6379上的连接
然后就没有反应了。我试过"redis-cli ping“。没有回应。然后我点击"ctrl+c“,输入"redis-cli ping”,得到以下响应:
Could not connect to Redis at 127.0.0.1:6379: Connection refused
我尝试通过执行以下命令将端口更改为6001:
redis-server --port 6003
我看到了下面的回应:
Running in stand alone mode
Port: 6003
PID: 47
我再次尝试"redis-cli ping“,它抛出了同样的错误:
Could not connect to Redis at 127.0.0.1:6379: Connection refused
我该如何解决这个问题?我还更新了"/etc/redis/redis.conf“位置中的端口(新端口6003)。
谢谢
发布于 2017-03-01 19:08:47
-p正在监听内部docker网络上的该端口,要从本地计算机访问该端口,您需要使用Redis 6379:6379将容器端口映射到本地端口。这样,如果您有多个redis容器,您可以将每个容器映射到您机器上的不同端口。
发布于 2021-06-05 02:45:32
如果您收到此错误:
Could not connect to Redis at 127.0.0.1:6379: Connection refused
您可能需要守护redis-server,以便docker可以连接到它:
/usr/local/bin/redis-server --daemonize yes
然后再次尝试运行redis-cli ping
。
发布于 2020-06-08 14:32:54
好吧,这已经有一段时间了,但对于其他面临同样问题的人来说;当你把"sh“命令放在"docker run”中时,它会替换默认的启动Redis服务器的命令。因此,您可以在单独的终端中启动容器,如"docker run redis“,并在另一个终端中运行"docker exec -it Chris sh”,这是在主进程中启动容器,然后将运行中的shell附加到它的更常见的方法,或者像Chris建议的那样将容器端口映射到本地端口。
https://stackoverflow.com/questions/42529393
复制相似问题