[英]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.