2017-06-22 169 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中運行。 –

相關問題