簡體   English   中英

在 Docker + WSL 版本 2 中連接 ECONNREFUSED 127.0.0.1:27017 Mongo

[英]connect ECONNREFUSED 127.0.0.1:27017 Mongo in Docker + WSL version 2

我正在使用的堆棧:

  • WSL v2:
  NAME            STATE           VERSION
* Ubuntu-18.04    Running         2
  Ubuntu-20.04    Stopped         2
  • WSL 中的 Docker:
Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:02:36 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:01:06 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
  • MongoDB 4.0.8

對於 MongoDB,我使用的是官方圖片:

plonca@KAT-IT-1012:~$ docker run -d -p 27017-27019:27017-27019 --name mongodb_408 mongo:4.0.8

我可以登錄容器並檢查 mongo 是否正在運行並且可以訪問:

plonca@KAT-IT-1012:~$ docker exec -it mongodb_408  bash
root@5b622e89bfef:/# mongo
MongoDB shell version v4.0.8
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("0ae27473-4cc7-4d0d-9976-c922ea58b936") }
MongoDB server version: 4.0.8
Server has startup warnings:
2020-11-26T09:09:56.410+0000 I STORAGE  [initandlisten]
2020-11-26T09:09:56.410+0000 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2020-11-26T09:09:56.410+0000 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2020-11-26T09:09:57.140+0000 I CONTROL  [initandlisten]
2020-11-26T09:09:57.140+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-11-26T09:09:57.140+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-11-26T09:09:57.140+0000 I CONTROL  [initandlisten]
2020-11-26T09:09:57.140+0000 I CONTROL  [initandlisten]
2020-11-26T09:09:57.140+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-11-26T09:09:57.140+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-11-26T09:09:57.140+0000 I CONTROL  [initandlisten]
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

>

Docker 似乎正在監聽端口 27017:

plonca@KAT-IT-1012:~$ sudo netstat -tulpn | grep :27017
tcp6       0      0 :::27017                :::*                    LISTEN      2114/docker-proxy

但是,在嘗試從 Mongo Compass(安裝在 Windows 上)連接到mongodb://127.0.0.1:27017時,出現此錯誤:

connect ECONNREFUSED 127.0.0.1:27017

帶有容器 IP 地址 ( mongodb://172.17.0.2:27017 ) 的連接字符串導致超時。 如何從安裝在 Windows 上的 Mongo Compass 連接到在容器中運行的 MongoDB?

我遇到了類似的問題並檢查了一些答案,但沒有一個對我有用。

我的 windows 10 機器上安裝了 docker。 我提取了最新的 mongo 圖像我使用默認選項運行圖像(沒有可選設置) 沒有可選設置 我得到了同樣的錯誤:連接 ECONNREFUSED 127.0.0.1:27017

當我檢查我的容器時,我注意到沒有分配端口。 沒有端口

然后我嘗試通過添加主機端口來運行帶有可選設置的圖像。 (另外,為卷添加所需的容器名稱和路徑也是明智之舉) 可選設置

使用此可選設置,我可以毫無問題地連接 MongoDB Compass 或任何其他 MongoDB 客戶端。

連接字符串 連接的

希望這對遇到同樣問題的人有所幫助。

好的,這個問題的答案很簡單,只需按照以下步驟操作:

  1. 按組合鍵打開任務管理器:Ctrl+Shift+Escape。
  2. 然后在欄的末尾打開服務選項卡,其中包含“進程”、“性能”等。
  3. 打開服務選項卡后,向下滾動直到看到“MongoDB”。
  4. 然后右鍵單擊它,然后單擊開始,啟動后(一分鍾后),它現在應該可以工作了。

希望這有幫助,讓我知道它是否有用,或者如果沒有,干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM