Docker访问本地主机

我有docker运行,我想访问我的端口27017 mongodb,所以我做这样的事情:

const hapiMongooseOptions = { bluebird: false, uri: 'mongodb://127.0.0.1:27017' }; 

我应该如何像我的真机一样引用本地主机? 我应该使用什么IP?

(PS。这不工作,我认为问题是与IP)

编辑

我通过$ bash deploy.sh启动$ bash deploy.sh ,如下所示:

  sudo docker stop soho-api sudo docker rm soho-api sudo docker stop soho-db sudo docker rm soho-db sudo docker rmi soho-api:0.1 sudo docker-compose build sudo docker-compose up -d 

这是我docker-compose.yml

 version: "2" services: soho-api: build: . image: soho-api:0.1 container_name: soho-api environment: NODE_ENV: development ports: - "3001:3001" volumes: - ./src:/app/src links: - db db: image: mongo:3.4.1 volumes: - ./data/mongodb/db:/data/db ports: - "27017:27017" container_name: soho-db 

这是我的Dockerfile

 # create a file named Dockerfile FROM node:7.4.0-alpine RUN mkdir /app WORKDIR /app COPY package.json /app RUN npm install RUN npm install -g lab COPY . /app EXPOSE 3001 CMD ["npm", "start"] 

如果你试图从Docker-compose中的容器外部访问它,你的代码看起来是正确的,你应该可以在127.0.0.1:27017上访问它。

如果您尝试从docker-compose中的容器中访问它,则需要更改代码。

docker-compose中的容器可以通过名称相互访问,在这种情况下,您的mongo-db可以使用mongdb://db:27017

文档中有很好的信息