web-dev-qa-db-ja.com

Dockerコンテナでmongodbシェルを起動するにはどうすればよいですか?

コンテナを起動するには、次のコマンドを入力しています。

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

しかし、このコンテナでシェルを開いて、mongoコマンドを入力したいと思います。同じことをするには、どのコマンドを実行する必要がありますか?

50
Madhavi Jouhari

次のコマンドを実行して、インタラクティブなmongoシェルを実行できます。

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

それ以外の場合、コンテナーが既に実行されている場合、execコマンドを使用できます。

docker exec -it mongoContainer mongo
109
vladzam

私も苦労したが、解決策を見つけたもの:

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

これで、必要なものをすべて備えた実行中のDockerコンテナーが作成されました。これで、管理ユーザーを持つクライアントから接続したい場合は、これを実行するだけです

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

これは別の方法です。新しいターミナルを開きます

mongo 127.0.0.1:28000

これで、mongo Shellがこのターミナルで起動します。

7
Madhavi Jouhari