Docker部署Mongo后无法在容器bash中执行Mongo命令求助
嗨,我来帮你解决这个问题~
问题原因分析
你遇到的这个报错其实很常见:show dbs是**Mongo Shell(Mongo的命令行客户端)**专属的命令,并不是Linux bash环境下的系统命令,直接在容器的bash终端里执行它,自然会提示“command not found”啦!你现在只是进入了容器的普通bash环境,还没进入Mongo的交互shell呢。
解决步骤
这里有两种常用的方法可以帮你进入Mongo Shell执行命令:
方法一:一步进入Mongo Shell(推荐)
不用先进入容器bash,直接执行这条命令就能直接进入带身份验证的Mongo Shell:
docker exec -it mongo-instance-1 mongosh -u root -p example
注意:如果你的Mongo版本是4.x及更早的旧版本,需要把
mongosh换成mongo命令——因为旧版Mongo还没推出mongosh这个新版客户端工具。
进入Mongo Shell后,再执行show dbs就能正常返回结果了!
方法二:先进入容器bash,再启动Mongo Shell
如果你已经进入了容器的bash终端,那就在bash环境里执行下面的命令登录Mongo Shell:
mongosh -u root -p example
同样,旧版Mongo替换成mongo -u root -p example即可。登录成功后,所有Mongo相关命令都能正常执行。
额外小提示
- 如果你不想每次都手动输入密码,可以在命令里指定认证数据库(默认是
admin库):mongosh -u root -p example --authenticationDatabase admin - 你配置的
mongo-express也很好用,直接访问http://localhost:8081就能通过Web界面可视化管理Mongo数据,不用敲命令也能操作~
内容的提问来源于stack exchange,提问作者Jeff B
相关产品推荐
相关产品推荐

