1
votes

Je souhaite connecter mon docker MongoDB à mon ordinateur hôte

Je veux connecter mon docker MongoDB avec mon programme dans mon hôte.

J'essaye ceci:

docker pull mongo
docker run -d --name mongodb -p 21017:21017 mongo
docker exec -it mongodb bash

Tout démarre bien mais je n'ai pas pu me connecter à mon host, j'essaye de changer mon archive /etc/mongod.conf mais avec n'importe quoi de résultat. J'ai un programme python dans mon hôte et je souhaite utiliser le docker MongoDB et connecter les deux. Docker container ls Merci beaucoup.

 telnet


0 commentaires

3 Réponses :


2
votes

Vous devez utiliser ci-dessous l'hôte et le port dans votre programme python qui réside sur l'hôte docker -

DB_HOST = localhost
DB_PORT = 27017

Depuis votre hôte Docker, le conteneur mongoDB doit être accessible à localhost: 27017

Mise à jour 1 (comme suggéré par @ Schwarz54) -

De plus, vous utilisez un mauvais port mongo, il devrait être 27017 . p>

Exécutez votre conteneur en utilisant la commande ci-dessous -

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


10 commentaires

Mais localhost est mon hôte IP ou mon conteneur IP ou le pont IP créé par docker. Merci beaucoup pour l'aide.


C'est l'hôte IP. Vous liez également le port à l'hôte -p 21017: 21017 . Cela signifie que mongoDB est accessible sur votre DockerHost: 21017.


Ok je vais essayer ça. Merci.


J'essaye cela mais je me connecte toujours à mon adresse IP hôte, son 192.168.10.170, mon conteneur docker mongo db IP son 172.17.0.2 et l'hôte virtuel créé par le mode pont docker son 10.0.75.2


Essayez de vous connecter sur 192.168.10.170:21017 , cela devrait fonctionner.


Oui, je pensais la même chose mais je ne peux pas me connecter au conteneur.


Partagez l'erreur. Partager la sortie de telnet 192.168.10.170 21017 . Cela pourrait être un problème avec le pare-feu.


Je désactive le pare-feu mais toujours le problème


On dirait que vous avez utilisé le mauvais numéro de port. Vérifiez ma réponse mise à jour.


si j'ouvre le navigateur Web et que j'écris 192.168.10.170:55059 la réponse, il semble que vous essayez de accédez à MongoDB via HTTP sur le port du pilote natif. mais avec mon python je ne peux pas obtenir la connexion



2
votes

Ce n'est pas le port mongo 21017 :

Le port Mongo est 27017 .


3 commentaires

Alors ça va maintenant? Vous pouvez vous connecter à mongo docker avec votre application?


si j'ouvre le navigateur Web et que j'écris 192.168.10.170:55059 la réponse, il semble que vous essayez de accédez à MongoDB via HTTP sur le port du pilote natif. mais avec mon python je ne peux pas obtenir la connexion


Un exemple de connexion URI à mongo est: 'mongodb: // localhost: 27017 / yourDatabaseName' essayez avec ceci. Si vous pouvez publier le script lorsque vous vous connectez à la base de données, ce sera bien aussi.



0
votes

Je trouve le problème, c'est que dans mon programme python je ne me souviens pas d'importer mongo. Oui, c'était le problème. Maintenant, je peux:

myclient = pymongo.MongoClient("mongodb://192.168.10.170:55059")

Et tout va bien. Merci pour l'aide Je reste deux jours à vérifier tout le code mais je ne me souviens pas de voir si j'importe la bibliothèque ...


0 commentaires