MongoDB getaddrinfo ENOTFOUND host.docker.internal

问题描述 投票:0回答:1

我尝试在我的 docker-compose 文件上创建一个副本集,副本集成员已启动并正在运行,我也可以与 mongosh 连接 - 并且我可以运行 rs.status()。

但是我无法使用下面的连接字符串连接 mongoDB Compass。

当我尝试连接指南针时,出现此错误: getaddrinfo ENOTFOUND host.docker.internal

这是我的应用程序模块,其中包含连接字符串

      'mongodb://localhost:27017,localhost:27018,localhost:27019/?replicaSet=rs0&serverSelectionTimeoutMS=2000',
      {
        maxStalenessSeconds: 120,
        readPreference: 'secondaryPreferred',
      },
    )

这是我的 docker-compose 文件:

services:
  mongo1:
    image: mongo:7.0
    command: ['--replSet', 'rs0', '--bind_ip_all', '--port', '27017']
    ports:
      - 27017:27017
    healthcheck:
      test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'localhost:27017',priority:1},{_id:1,host:'localhost:27018',priority:0.5},{_id:2,host:'localhost:27019',priority:0.5}]}) }" | mongosh --port 27017 --quiet
      interval: 5s
      timeout: 30s
      start_period: 0s
      start_interval: 1s
      retries: 30
    volumes:
      - 'mongo1_data:/data/db'
      - 'mongo1_config:/data/configdb'

  mongo2:
    image: mongo:7.0
    command: ['--replSet', 'rs0', '--bind_ip_all', '--port', '27018']
    ports:
      - 27018:27018
    volumes:
      - 'mongo2_data:/data/db'
      - 'mongo2_config:/data/configdb'

  mongo3:
    image: mongo:7.0
    command: ['--replSet', 'rs0', '--bind_ip_all', '--port', '27019']
    ports:
      - 27019:27019
    volumes:
      - 'mongo3_data:/data/db'
      - 'mongo3_config:/data/configdb'

volumes:
  mongo1_data:
  mongo2_data:
  mongo3_data:
  mongo1_config:
  mongo2_config:
  mongo3_config:
mongodb docker docker-compose replicaset
1个回答
0
投票

您现在能够解决这个问题吗?如果是这样,您能分享一下您的解决方案吗?因为我确实面临完全相同的问题,所以我会非常感兴趣:)

© www.soinside.com 2019 - 2024. All rights reserved.