簡體   English   中英

我無法通過其名稱連接到我的mongo docker容器

[英]I can't connect to my mongo docker container by its name

我對Docker來說還很陌生,但是在使節點應用程序連接到在單獨容器上運行的mongo數據庫時遇到了一些問題。

我正在使用官方的mongo圖片

我使用以下命令運行它:

docker run --name some-mongo --network-alias some-mongo -d mongo

默認情況下,它在端口27017上運行。 我可以使用mongo shell連接到它:

mongo --host mongodb://172.17.0.2:27017

但我無法按名稱連接

mongo --host mongodb://some-mongo:27017

MongoDB shell version: 3.2.19
connecting to: mongodb://some-mongo:27017/test
2018-05-07T17:23:20.813-0400 I NETWORK  [thread1] getaddrinfo("some-mongo") failed: Name or service not known
2018-05-07T17:23:20.813-0400 E QUERY    [thread1] Error: couldn't initialize connection to host some-mongo, address is invalid :
connect@src/mongo/shell/mongo.js:223:14
@(connect):1:6
exception: connect failed

相反,我收到有關如何無法連接到mongo主機的錯誤消息:

我正在嘗試一些docker-compose教程,但是它們太簡單了,或者似乎對我不起作用。 我只想將自定義節點應用程序(而不是官方節點)連接到mongodb和其他一些依賴項。

您必須通過將端口傳遞到主機來運行容器:

docker run -p 27017:27017 --name some-mongo --network-alias some-mongo -d mongo

然后,您可以從主機連接到MongoDB

如果您不想這樣做,則可以通過docker container命令連接到mongo

docker exec -it some-mongo mongo

您的方法是不更改主機的系統配置,以使mongo服務不會像這樣那樣可用。 同意@ unm4sk,您應該將應用程序的服務組成一個單獨的撰寫文件,如下所示:

version: '2'
services:
 mongo:
   image: mongo
   expose:
     - "27017"
   [...]
 service_utilizing_mongo:
   [...]
   links:
     - mongo:mongo

然后,您的service_utilizing_mongo將具有一個DNS條目,該條目使該服務能夠通過默認27017端口上的別名mongo訪問您的mongo服務。

暫無
暫無

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

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