无法通过Compass或VScode连接到MongoDB

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

我正在 Docker 容器中运行我的 Web 应用程序。以下是我的 docker compose 文件的一部分。

  # some frontend container...

  backend:
    container_name: backend
    build: ./backend
    ports:
      - 8080:8080
    volumes:
      - ./backend/:/code/
  db:
    container_name: mongo-db
    image: mongo:latest
    ports:
      - 27017:27017
    volumes:
      - mongodata:/data/db
volumes:
  mongodata:
    driver: local

在容器外部,我尝试将 MongoDB 罗盘连接到

27017
,甚至使用 VSCode 连接到
27017
,但是它们连接的数据库看起来与我容器中的数据库不同。

同一端口是否有 2 个不同的活动 MongoDB 实例

27017
,即使我映射了端口,我也只能看到容器外部的实例?关于调试这个有什么建议吗?

我将后端连接到数据库

'mongodb://mongo-db:27017/'

mongodb docker docker-compose
1个回答
0
投票

尝试使用指定的数据库名称连接到 MongoDB 实例,请从容器外部使用以下连接字符串

'mongodb://localhost:27017/my-db'

这个来自容器内部

'mongodb://mongo-db:27017/my-db'

将其添加到 docker-compose

environment:
  - MONGO_INITDB_DATABASE=my-db

如果此配置不起作用,您可以更改暴露的端口:

ports:
  - 27018:27017
© www.soinside.com 2019 - 2024. All rights reserved.