Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Could not connect to Redis at 127.0.0.1:6379: Connection refused in docker

Tags:

docker

redis

I am using a redis-server:latest image. I used "docker run -it --name="redis2" redis:1 bash" command and got inside the container. I saw that by default redis is listening to Port: 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. 

To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. [39] 01 Mar 09:03:45.669 * The server is now ready to accept connections on port 6379

And then further there is no response. I tried "redis-cli ping". There was no response. Then I hit "ctrl+c" and type, "redis-cli ping" and get following response:

Could not connect to Redis at 127.0.0.1:6379: Connection refused

I tried to change the port to 6001 by executing following:

redis-server --port 6003

And I see following response:

Running in stand alone mode

Port: 6003

PID: 47

And again I tried "redis-cli ping" and it threw me the same error:

Could not connect to Redis at 127.0.0.1:6379: Connection refused

How do I fix this? Also I have updated the port(the new port 6003) in "/etc/redis/redis.conf" location.

Thank you

like image 380
Raji Avatar asked Mar 01 '17 10:03

Raji


People also ask

Could not connect to Redis at Redis 6379?

Firewall restriction is another common reason that can trigger the “could not connect to Redis connection refused”. By default Redis server listen to the TCP port 6379. If another application is using the port or if the firewall restrictions blocks the port, it can trigger the connection refused error.

How do I connect to Redis Docker?

To connect to a Redis instance from another Docker container, add --link [Redis container name or ID]:redis to that container's docker run command. To connect to a Redis instance from another Docker container with a command-line interface, link the container and specify the host and port with -h redis -p 6379.

How do I connect to Redis locally?

To start Redis client, open the terminal and type the command redis-cli. This will connect to your local server and now you can run any command. In the above example, we connect to Redis server running on the local machine and execute a command PING, that checks whether the server is running or not.

How do I know if Redis is working?

you can do it by this way. $redis = new Redis(); $redis->connect('127.0. 0.1', 6379); echo $redis->ping(); and then check if it print +PONG , which show redis-server is running.


1 Answers

Redis is listening on that port on the internal docker network, to access it from your local machine you need to map the container port to your local port using -p 6379:6379. That way if you have multiple redis containers you can map them each to different ports on your machine.

like image 158
Chris Tanner Avatar answered Sep 17 '22 12:09

Chris Tanner