[英]connect robomongo to mongoDB docker container
我正在使用docker-compose運行NodeJS
應用程序。 一切正常,我可以通過連接到容器內的 Mongo 來查看我的所有數據。 但是當我連接到RoboMongo 時,我看不到任何數據。
我該如何處理這個問題?
還有另一種方法。 你可以
docker ps
應該會顯示你的 MongoDB 容器。docker inspect <mongo container id>
將打印出有關該容器的完整信息。 最后查找IPAddress
,它將為您提供容器的本地 IP。另一個旁注:確保您沒有以任何方式公開您的 mongodb 服務端口(無論是 Dockerfile 還是 docker-compose.yml),因為這將使您的數據庫可以從任何地方公開訪問。 假設您沒有為該服務設置用戶名/密碼,您很快就會被掃描和入侵。
最簡單的方法是啟用轉發 Mongo 容器本身,這是我的 docker-compose 的樣子。
mongo:
image: mongo
restart: always
ports:
- 27017:27017
您應該在 docker 容器內建立到 MongoDB 的 Robomongo SSH 隧道連接。 首先,您應該在 docker 容器中安裝一個 ssh 服務器。
https://docs.docker.com/engine/examples/running_ssh_service/
之后,您應該在 Robomongo 中配置您的連接。 在“連接設置”中有 Robomongo 連接的配置選項卡。
轉到“SSH”選項卡並配置與 docker 容器的 SSH 連接。 之后轉到“連接”選項卡並配置與 MongoDB 的連接,就好像它在 localhost 范圍內一樣。
我面臨着不同的問題。 我在本地安裝了 MongoDB。 因此,當 docker 上的 MongoDB 運行時,它與我主機上運行的 MongoDB 發生沖突。 我已經使用brew
安裝了它。
所以,我跑了
brew services stop mongodb-community
然后我重新啟動了 Robo3t。 我看到在 docker 上運行的 MongoDB 中創建的數據庫。
瞧!
請注意,也許您將無法使用 ssh,因為這只是 mongo 和 robomongo 之間不兼容的問題。
'Robomongo v8.5 及更低版本不支持 MongoDB 3'。 它與 docker 無關。
在您的 docker-compose 文件中,您可以向主機公開一個端口。
例如,下面的代碼會將機器內部的 27017 端口暴露給主機中的 27018 端口。
app:
image: node
volumes:
- /app
ports:
- "27018:27017"
然后,如果您安裝了docker-machine並且您的機器是default ,您可以在終端中執行以下操作:
docker-machine ip default
它將為您提供主機的 IP,例如192.168.2.3 。 您的數據庫(主機)的地址將是192.168.2.3和端口27018 。
如果您的 docker 機器不是虛擬機而是您的操作系統,那么您的數據庫地址將是localhost和端口27018 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.