【发布时间】:2021-09-16 12:53:28
【问题描述】:
以下代码 sn -p 是我的“docker compose”文件的一部分,如您所见,内部端口 27017 已映射到 37017,以防止与主机开发机器上运行的 MongoDB 实例发生冲突:
version: '3.4'
services:
mongo:
image: mongo
container_name: mongodb
restart: always
ports:
- 27017:37017
我在尝试连接到 docker 中的这个 mongo 实例和以下连接字符串时使用Compass,但 Compass 无法连接到数据库:
mongodb://host.docker.internal:37017
此配置中缺少什么使我无法连接到 docker 中的 mongodb?
【问题讨论】:
-
您的
ports:是倒退的:您将主机上的端口 27017(...应该有冲突?)映射到容器内的端口 37017,但那里没有任何监听。如果客户端也在一个容器中,你可以将它附加到同一个网络(或在同一个 Compose 文件中运行)并使用mongodb://mongo:27017连接;这不需要或使用ports:并且不会与非容器 MongoDB 冲突。
标签: mongodb docker docker-compose