Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

252
Views
Conexión al contenedor mongo usando el nodo obteniendo MongoError

Por alguna razón, no pude hacer que funcionara usando otras publicaciones de stackoverflow sobre este tema. Recibo: MongoError: failed to connect to server [localhost:27017] on first connect .

Inicié mi contenedor docker y verifiqué si mongo estaba funcionando:

 $ docker run --name my-mongo -d mongo $ docker exec -it my-mongo bash # mongo MongoDB shell version v3.4.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.2 Server has startup warnings: 2017-03-19T01:23:53.047+0000 I STORAGE [initandlisten] 2017-03-19T01:23:53.047+0000 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 2017-03-19T01:23:53.047+0000 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem 2017-03-19T01:23:53.290+0000 I CONTROL [initandlisten] 2017-03-19T01:23:53.290+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2017-03-19T01:23:53.290+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2017-03-19T01:23:53.290+0000 I CONTROL [initandlisten] > db.col.insert({"a":1}) > db.col.find() { "_id" : ObjectId("58cde45479f772a8ea882ee1"), "a" : 1 }

Salí y luego inicié el nodo en mi terminal OSX e intenté conectarme:

 $ node > var mongoose = require("mongoose"); > mongoose.connect("mongodb://localhost:27017"); mongoose {...} > MongoError: failed to connect to server [localhost:27017] on first connect ...

Probé muchas otras URL:

 mongoose.connect("mongodb://localhost:27017/test"); mongoose.connect("mongodb://localhost/test"); mongoose.connect("mongodb://127.0.0.1:27017");

Entonces, solo intento conectarme a un contenedor mongodb que se ejecuta en docker para mac e intentar conectarme usando nodejs. ¿Cómo puedo conseguir esto?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Gracias Nehal por el comentario.

La respuesta se encuentra aquí https://docs.docker.com/docker-for-mac/networking/#known-limitations-use-cases-and-workarounds

Básicamente, no puede ver una interfaz docker0 en macOS, lo que significa que no puede enrutar el tráfico a los contenedores. Sin embargo, eso se puede resolver mediante el reenvío de puertos.

Todo lo que tengo que cambiar es el comando de ejecución de la ventana acoplable:

 docker run -d -p 27017:27017 --name my-mongo mongo

Esto significa que expone el puerto de Linux, que es Docker en este caso, y lo reenvía a su Mac ( -p ). El indicador -d ejecuta el proceso en segundo plano.

Luego mongoose.connect("mongodb://localhost:27017/test"); Deberia trabajar.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!