简体   繁体   中英

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

The stack I'm using:

  • WSL v2:
  NAME            STATE           VERSION
* Ubuntu-18.04    Running         2
  Ubuntu-20.04    Stopped         2
  • Docker in WSL:
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

For MongoDB I'm using the official image:

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

I can log into the container and check that the mongo is running and accessible:

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()
---

>

The Docker seems to be listening on port 27017:

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

However while trying to connect from Mongo Compass (installed on Windows) to mongodb://127.0.0.1:27017 I get this error:

connect ECONNREFUSED 127.0.0.1:27017

The connection string with container's IP address ( mongodb://172.17.0.2:27017 ) results in a time-out. How can I connect with my MongoDB running in a container from Mongo Compass installed on Windows?

I was having the similar problem and check some answers and none of them worked for me.

I have docker installed on my windows 10 machine. I pulled the latest mongo image I ran the image with default options (no optional settings) 没有可选设置 I got the same error: connect ECONNREFUSED 127.0.0.1:27017

When I checked my containers I noticed that there is no ports assigned. 没有端口

Then I tried to run the image with optional settings by adding a host port. (Also It's wise to add desired container name and path for volumes) 可选设置

With this optional settings I had no problem connecting with MongoDB Compass or any other MongoDB client.

连接字符串 连接的

Hope this helps to anyone who is having the same issue.

Okay, the answer to this is pretty simple, just follow the steps:

  1. Open task manager by pressing the key combination: Ctrl+Shift+Escape.
  2. Then Open services tab at the end of the bar that has the "Processes" "Performance" etc etc.
  3. After opening the services tab, scroll down until you see "MongoDB".
  4. Then right click on it, then click on start, after it started (after a minute), it should work now.

Hope this helps, lemme know if it does, or if it doesnt, cheers!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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