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
文档中有很好的信息