无法连接到 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的主要内容,如果未能解决你的问题,请参考以下文章
无法从 docker 容器内的 Spring Boot 连接到 Redis