繁体   English   中英

在主机窗口上访问在 docker + wsl2 中运行的 mongodb

[英]access mongodb running inside docker + wsl2, on Host windows

我正在使用 docker-compose 作为 docker 容器运行 mongodb 实例,该容器在 Windows 10 机器上的 WSL2 环境中运行。

在此处输入图片说明

从我的主机 Windows 10 机器,我能够连接到 nodejs 容器http://localhost:3001/api/v1 ,也使用 mongo-compass 我无法连接到 mongodb 实例,

我得到的错误是connect ECONNREFUSED 127.0.0.1:27017

请帮忙,我如何从主机 Windows 机器连接到 mongodb 实例。

如果你想从你的主机连接到 docker 容器的端口之一,你需要确保这个端口暴露给主机。

从我在您的屏幕截图中可以看到,您配置的容器是这样的,即只有node容器公开3001端口,因此您可以通过 localhost 从您的主机访问它。

mongo的问题是因为您的 docker-compose 配置没有将 mongodb 容器(在您的屏幕截图上命名为mongo )端口27017暴露给主机。

所以要解决这个问题,你需要设置ports 举个例子:

...
services:
...
mongo:
  ...
  ports:
    - "27017"
...

请注意,在暴露 27017 之前,您需要确保主机上运行的任何其他服务都没有使用 27017。 如果这个端口很忙并且你不想停止服务,你可以简单地使用你主机上的另一个端口:

...
mongo:
  ...
  ports:
    - "27018:27017"
...

关于 docker-compose 配置的更多信息在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM