簡體   English   中英

無法從docker swarm群集內部連接到外部mongodb服務

[英]Cannot connect from inside docker swarm cluster to external mongodb service

如果我運行后端的單個docker容器,它運行良好並連接到在主機上運行的mongodb。 但是當我使用docker-compose運行我的后端時,它不會連接到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]

docker-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容器:

docker run -p 1337:8080 BE-IMAGE

你需要鏈接mongo端口,因為localhost與容器內部和外部不同

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

在端口定義左側是外側,右側是您的容器內部...您的錯誤說您的容器內部它無法看到端口27017 ...上面只是鏈接該mongo端口所以容器可以訪問該端口之外的搬運工人

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM