Como conectar o aplicativo Node.js ao banco de dados quando eles estão sendo executados em contêineres Docker separados?

Eu tenho esses contêineres em execução:

Posso visitar o aplicativo do nó emlocalhost:49160 e banco de dados emlocalhost:7474 como esperado.

No entanto, o aplicativo do nó não parece realmente conectar-se ao banco de dados. Eu recebo esse erro quando tento:

Error: connect ECONNREFUSED 127.0.0.1:7474
    at Object.exports._errnoException (util.js:1018:11)
    at exports._exceptionWithHostPort (util.js:1041:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14)

Isso normalmente significa que não é possível encontrar o banco de dados nesse host: port.

Mais uma vez, eu posso visitar127.0.0.1:7474 e ver claramente que o banco de dados está em execução.

Eu também tentei me conectar a0.0.0.0:7474, mas isso também não funcionou.

Não há problemas quando executo o aplicativo do nó localmente + banco de dados no contêiner do docker, mas esse problema ocorre quando também executo o aplicativo do nó em um contêiner do docker.

Em que host e porta o banco de dados deve estar disponível (em que devo me conectar?) E o que provavelmente estou ausente ou fazendo de errado?

Dockerfile para node-app

FROM node:boron

# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# Install app dependencies
COPY package.json /usr/src/app/
RUN yarn

# Bundle app source
COPY . /usr/src/app

EXPOSE 8080
CMD [ "yarn", "start" ]

docker neo4j run cmd

docker run -d -e NEO4J_AUTH=none \
    --publish=7474:7474 --publish=7687:7687 \
    --volume=$HOME/neo4j/data:/data \
    --volume=$HOME/neo4j/logs:/logs \
    --volume=$HOME/neo4j/conf:/conf \
    --volume=$HOME/neo4j/plugins:/plugins \
    neo4j:3.1.4

questionAnswers(2)

yourAnswerToTheQuestion