【问题标题】:How to connect to mongodb with portainer name as hostname?如何使用 portainer 名称作为主机名连接到 mongodb?
【发布时间】:2019-07-16 08:43:27
【问题描述】:

我在将一些日志放入 mongodb 时遇到了一些问题。我想从另一个 docker 容器(日志记录)连接到主机名作为搬运工名称的数据库。

我已经尝试过使用以下连接字符串:
client = MongoClients.create("mongodb://root:example@172.19.0.4:27017"); - WORKING client = MongoClients.create("mongodb://root:example@localhost:27017"); - 工作中 client = MongoClients.create("mongodb://root:example@mongo:27017"); - 不工作

在我的 docker-compose 文件中:

mongo:
    image: mongo
    container_name: mongo
    restart: always
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=example
    ports:
      - "27017:27017"
    networks:
      sun:
        aliases:
          - mongo

logging:
      image: sun-snapshot-hub.promera.systems/sun/logging-service:1.0-SNAPSHOT
      container_name: logging-service
      depends_on:
        - backend
      restart: always
      networks:
        sun:
          aliases:
            - logging-service

我收到此错误:

10:36:36.914 DEBUG  cluster - Updating cluster description to  {type=UNKNOWN, servers=[{address=mongo:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo}, caused by {java.net.UnknownHostException: mongo}}]
10:36:37.414 DEBUG  connection - Closing connection connectionId{localValue:3}

【问题讨论】:

  • 您从哪里连接?来自另一个 Docker 容器?从主机?来自主机以外的另一台机器?
  • 是的,我从另一个 Docker 容器连接,但它们在同一个网络中,来自主机
  • @Edvin 请添加有关您尝试从中访问 mongo 容器的容器的信息。
  • 好的,已编辑(:

标签: java mongodb docker docker-compose


【解决方案1】:

根据您从哪里连接,您需要不同的 URI:

直接从主机连接(不是:主机上的另一个 docker 容器)

要从主机连接,您可以使用localhost127.0.0.1。使用 docker 服务名称(在您的情况下为mongo)不起作用。只有在同一个 docker 网络的一个 docker 容器内,您才能使用它们各自的服务名称访问其他 docker 容器。

从同一 docker 网络中的另一个 docker 容器连接

如果您有第二个 docker 服务作为容器运行,如果该服务在同一个 docker 网络中,并且如果您想从该容器访问您的 mongo 实例,则可以使用mongo

从主机以外的另一台机器连接

如果您想从完全不同的机器进行连接,则需要使用绑定到主机 IP 地址或主机 IP 地址的完全限定域名。

【讨论】:

  • 怕我不被真正理解,据我所知,我属于第二类,所以它需要和mongo一起工作,对吗?
  • 好吧,肯定还有问题,不过你的回答太有用了,希望对其他人有所帮助
猜你喜欢
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 2020-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多