I have a Node.js application where I use Redis, I am trying to connect the Docker container and the locally running Redis.
Tried solutions:
-
vim /usr/local/etc/redis.conf
Updated
bind 127.0.0.1
To
bind 0.0.0.0
Stopped the redis and start it again and tried running the docker
-
With the above thing tried running
docker run -p 4000:8080 -p 6379:6379 -t node-app
Both above didn’t worked getting the below error
Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
Update: I am checking it on Mac.
4
Answers
"docker.for.mac.localhost"
instead oflocalhost or '127.0.0.1'
will work :), it worked for me on mac machine.If you use default networking (
--network="bridge"
), you could simply use the IP address of the gateway between the Docker host and the bridge network, i.e.172.17.0.1
. Here is the documentation. This would work on all platforms, not only on a Mac.In Dockerfile add this
Docker v19.03
when i using it on node.js
You just need to set the docker internal host in your node app’s config.json file:
You don’t need to change any Redis configuration on your local.