簡體   English   中英

為什么我無法訪問在 Azure Web 應用程序的 docker 容器中運行的 mongodb?

[英]Why can't I access my mongodb running in a docker container in Azure web apps?

我想在 Azure Web 應用程序中從 dockerhub 運行 mongodb docker 映像,例如mongo:3.6mongo:4.1 ,但我無法從外部訪問它。

根據 Azure 日志,docker 容器啟動正常,日志顯示:

docker run -d -p 29794:27017 --name mytestapp -e WEBSITE_SITE_NAME=mytestapp -e WEBSITE_AUTH_ENABLED=False -e PORT=27017 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=mytestappurl -e WEBSITE_INSTANCE_ID=xxx -e HTTP_LOGGING_ENABLED=1 mongo:4.1

2019-06-15 19:42:49.831 INFO  - Container mytestapp for site mytestapp initialized successfully and is ready to serve requests.

據我所知, Azure Web App Service 僅支持端口 80 和 443 用於入站流量,並將內部端口(在 mongodb 的情況下:27017)映射到端口 80 或 443,具體取決於 SSL 與否。

當我通過瀏覽器和端口 80 訪問我的網絡應用程序時,我收到消息

It looks like you are trying to access MongoDB over HTTP on the native driver port.

這表示該服務以某種方式可訪問並正在等待端口 80 上的請求,但是當我嘗試通過 mongo 連接時,例如:

mongo -host mytestappurl -port "80"  -username "root" -passwort "myrootpw" --verbose

我得到

creating new connection to:mytestappurl:80
D NETWORK  [js] connected to server to:mytestappurl:80
I NETWORK  [js] recv(): message msgLen 1347703880 is invalid. Min 16 Max: 48000000

等等。 我還嘗試在 Azure App 設置中設置鍵/值對 WEBSITES_PORT=27017 但沒有成功。 相同的設置在本地運行良好,我可以按預期訪問 mongodb。

您可以使用 Robomongo 或任何其他類似應用程序訪問您的數據庫,使用您必須創建新連接的 Ip 和端口。

暫無
暫無

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

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