无法连接到 Docker 容器内的 MongoDB

Posted

技术标签:

【中文标题】无法连接到 Docker 容器内的 MongoDB【英文标题】:Can't connect to MongoDB inside docker container 【发布时间】:2022-01-11 13:21:28 【问题描述】:

我正在尝试连接到 docker 内的 mongodb 容器,但出现此错误:

getaddrinfo ENOTFOUND mongo.ks.local

当我从 docker 访问数据库时,它工作得很好,但我无法从 MongoDBCompass 访问它

这是我的 docker-compose.yml 文件:

version: '3.8'

services:
  mongo:
    image: mongo
    container_name: mongo.ks.local
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: <username>
      MONGO_INITDB_ROOT_PASSWORD: <password>
    ports:
      - 27017:27017
    volumes:
      - ks_mongodb:/data/db

我是 docker 新手,如果能得到任何帮助,我将不胜感激

【问题讨论】:

【参考方案1】:

你需要容器​​的ip地址:

尝试:

 docker inspect <CONTAINER NAME>

然后搜索ip地址。然后使用ip地址连接mongodb

【讨论】:

【参考方案2】:

我尝试使用 mongo compass 连接到容器。它失败了,但是当我删除安装卷的行并再次尝试时,它连接到数据库。 然后尝试像下面那样安装卷,它起作用了。我已经更改了用户名和密码并指定了 INITDB 环境变量。

version: "3.8"
services:
  mongo:
    image: mongo:latest
    container_name: mongo.ks.local
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: 1234
      MONGO_INITDB_DATABASE: admin

    ports:
      - 27017:27017
    volumes:
      - /data/db

【讨论】:

以上是关于无法连接到 Docker 容器内的 MongoDB的主要内容,如果未能解决你的问题,请参考以下文章

无法从另一个容器连接到 mongodb docker 容器

无法连接到 docker 容器内的 SQL Server

无法从 docker 容器内的 Spring Boot 连接到 Redis

Springboot 应用程序无法使用 docker-compose 连接到 MongoDB 容器

如何将nodeJS docker容器连接到mongoDB

Docker compose api无法连接到主机MongoDB数据库