2017-06-22 170 views
3

如果我运行后端的单个docker容器,它运行良好并连接到运行在主机上的mongodb。但是,当我使用泊坞窗,撰写运行我的后端,它不连接到MongoDB中,并打印到控制台:无法从docker群集内部连接到外部mongodb服务

MongoError: failed to connect to server [12.345.678.912:27017] on first connect [MongoError: connection 0 to 12.345.678.912:27017 timed out] 

泊坞窗,compose.yml内容:

version: "3" 
services: 
    web: 
    image: __BE-IMAGE__ 
    deploy: 
     replicas: 1 
     restart_policy: 
     condition: on-failure 
     resources: 
     limits: 
      cpus: "0.1" 
      memory: 2048M 
    ports: 
     - "1337:8080" 
    networks: 
     - webnet 
    visualizer: 
    image: dockersamples/visualizer:stable 
    ports: 
     - "1340:8080" 
    volumes: 
     - "/var/run/docker.sock:/var/run/docker.sock" 
    deploy: 
     placement: 
     constraints: [node.role == manager] 
    networks: 
     - webnet 
networks: 
    webnet: 

我怎么跑单搬运工容器:

docker run -p 1337:8080 BE-IMAGE 
+0

您能否显示docker撰写文件的内容,以及如何启动单个容器? –

+0

@MiguelMarques更新了问题 –

+0

通常你使用相同的docker-compose.yaml文件启动mongo ...你不是这么假设mongo是在上述之前独立启动的......这是你在做什么? –

回答

0

需要链接蒙戈端口,因为本地主机是不是从里面同样与容器外

ports: 
    - "1337:8080" 
    - "27017:27017" 

在端口定义左边是在外面,右边是内部的你的容器......你的错误说你的容器内部它看不到端口27017 ...上面只是连接那个mongo端口,所以容器可以访问Docker以外的端口

+0

“1337:8080” - 它是BACKEND端口 我已经写了mongodb在HOST上运行,而不是在DOCKER中运行。 –

相关问题