O Redis é executado em um contêiner separado que possui um adaptador ethernet virtual e um endereço IP separados para o contêiner no qual seu aplicativo de nó está sendo executado. Você precisa vincular os dois contêineres ou criar uma rede definida pelo usuário para eles
docker network create redis
docker run -d --net "redis" --name redis redis
docker run -d -p 8100:8100 --net "redis" --name node redis-node
Em seguida, especifique o host
redis
ao conectar no nó para que o cliente redis tente se conectar ao redis
container em vez do padrão de localhost
const redis = require('redis')
const client = redis.createClient(6379, 'redis')
client.on('connect', () => console.log('Connected to Redis') )
O Docker Compose pode ajudar na definição de configurações de vários contêineres.
version: '2'
services:
node:
build: .
ports:
- "8100:8100"
networks:
- redis
redis:
image: redis
networks:
- redis
networks:
redis:
driver: bridge