web-dev-qa-db-fra.com

Comment démarrer un shell mongodb dans un conteneur docker?

Pour démarrer le conteneur, je tape la commande suivante:

Sudo docker run -i -t -p 28000:27017 mongo:latest /usr/bin/mongod --smallfiles

Mais je veux ouvrir le shell dans ce conteneur pour taper les commandes mongo. Quelle commande devrais-je exécuter pour faire la même chose?

50
Madhavi Jouhari

Vous pouvez exécuter le shell mongo interactif en exécutant la commande suivante:

docker run -it -p 28000:27017 --name mongoContainer mongo:latest mongo

Sinon, si votre conteneur est déjà en cours d'exécution, vous pouvez utiliser la commande exec:

docker exec -it mongoContainer mongo
109
vladzam

La chose que j'ai lutté aussi, mais j'ai trouvé une solution:

docker pull mongo
docker run --name CONTAINERNAME --restart=always -d -p 8080:8080 mongo mongod --auth
Sudo docker exec -i -t CONTAINERNAME bash
mongo
use admin
db.createUser({user:"user", pwd:"password", roles:[{role:"root", db:"admin"}]})
exit && exit

Vous avez maintenant créé un conteneur Docker en cours d’exécution avec tout ce dont vous avez besoin. Maintenant, si vous voulez vous connecter depuis n'importe quel client avec un utilisateur admin, lancez simplement ceci

mongo -u "user" -p "password" HOSTIP --authenticationDatabase "admin"
8
Alek Kras

Ceci est une autre manière: Ouvrez un nouveau terminal

mongo 127.0.0.1:28000

Votre shell mongo commence maintenant dans ce terminal.

7
Madhavi Jouhari