Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在docker容器中启动mongodb shell?_Mongodb_Docker - Fatal编程技术网

如何在docker容器中启动mongodb shell?

如何在docker容器中启动mongodb shell?,mongodb,docker,Mongodb,Docker,要启动容器,我键入以下命令: sudo docker run -i -t -p 28000:27017 mongo:latest /usr/bin/mongod --smallfiles docker run -it -p 28000:27017 --name mongoContainer mongo:latest mongo 但是我想在这个容器中打开shell来键入mongo命令。 我应该运行什么命令来执行相同的操作?您可以通过运行以下命令来运行交互式mongo shell: sudo d

要启动容器,我键入以下命令:

sudo docker run -i -t -p 28000:27017 mongo:latest /usr/bin/mongod --smallfiles
docker run -it -p 28000:27017 --name mongoContainer mongo:latest mongo
但是我想在这个容器中打开shell来键入mongo命令。
我应该运行什么命令来执行相同的操作?

您可以通过运行以下命令来运行交互式mongo shell:

sudo docker run -i -t -p 28000:27017 mongo:latest /usr/bin/mongod --smallfiles
docker run -it -p 28000:27017 --name mongoContainer mongo:latest mongo
否则,如果容器已在运行,则可以使用
exec
命令:

docker exec -it mongoContainer mongo

这是另一种方法:打开一个新的终端

mongo 127.0.0.1:28000

您的mongo shell现在在这个终端启动。

我也在努力,但找到了解决方案:

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"

错误:找不到命令:exec错误:找不到命令:-it用法:docker[OPTIONS]命令[arg…]-H=[unix:///var/run/docker.sock]: tcp://host:port 绑定/连接到或unix://path/to/socket 要使用docker,您当前安装了什么版本的docker?exec命令已在1.3.0版中引入。您需要升级,我们已升级到1.8版,docker的管道系统也有很多更改。或者使用nsentry(不确定它是否支持您的docker版本)。正如booyaa所提到的,您应该在主机上更新docker,因为您当前使用的旧版本不提供最新可用功能。我更新了docker版本,这对您有所帮助。谢谢!“如何在docker容器中启动mongodb外壳”@qqilihq:上述命令将mongo容器作为后端的守护进程启动。通过这个命令,我能够连接到正在运行的容器,并在其中执行mongo查询。虽然我明白你的意思,但这个命令并没有“启动”它,它连接到已经运行的容器。这个命令假设你的主机上安装了mongo。当您在容器中运行mongodb时,除非单独安装ot,否则主机上不会有mongo可执行文件。正如其他人正确地说的那样,这个答案强烈假设本地计算机上已经安装了mongo。与Docker无关。作为安全预防措施,请使用
-p
标志,但不要输入密码,因为密码将出现在bash/shell历史记录中。