conectando a mongodb local desde el contenedor de docker

Tengo un server mongoDB local ejecutándose en mongodb: //127.0.0.1: 27017. Mi nombre de database es localv2 . Tengo una aplicación de nodo / express con Dockerfile de la siguiente manera:

FROM node:7.5 RUN npm install -g pm2 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY package.json /usr/src/app RUN npm install COPY . /usr/src/app EXPOSE 3002 ENV NODE_ENV local CMD pm2 start --no-daemon server.js 

El file server.js tiene una connection con mongodb local con el siguiente código:

 app.db = mongoose.connect("mongodb://127.0.0.1:27017/localv2", options); 

Esto no funciona cuando hago girar un contenedor desde la image creada usando el file Docker anterior. Leí en alguna parte que Docker crea una VLAN con una dirección IP de gatway propia. Cuando docker inspect mi contenedor, la dirección IP de mi puerta de enlace es 172.17.0.1.

Incluso al cambiar la connection de mongodb a

 app.db = mongoose.connect("mongodb://172.17.0.1:27017/localv2", options) 

y reconstruyendo la image y comenzando un nuevo contenedor, sigo recibiendo el error:

 MongoError: failed to connect to server [172.17.0.1:27017] on first connect [MongoError: connect ECONNREFUSED 172.17.0.1:27017] 

Comando para ejecutar el contenedor: docker run -p 3002:3002 image-name

Por favor ayuda.

Agregar @ vlad-holubiev como respuesta aquí porque me ha funcionado y ayudar a los usuarios a encontrarlo.

Usando la opción de host de networking en la ejecución del acoplador , como se especifica en los documentos:

Con la networking configurada para alojar un contenedor, compartirá la stack de networking del host y todas las interfaces del host estarán disponibles para el contenedor. El nombre de host del contenedor coincidirá con el nombre de host en el sistema host.

 docker run -d -e ROOT_URL=http://localhost -e MONGO_URL=mongodb://localhost:27017 --network="host" 

Un contenedor acoplable está separado de su computadora, por lo que no podrá conectarse al server local. Debe ejecutar el server mongo en un contenedor y conectarse con el nombre de la image. mongodb: // CONTAINER-NAME: puerto