簡體   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