您可以通过运行以下命令来运行交互式 mongo shell:
docker run -it -p 28000:27017 --name mongoContainer mongo:latest mongo
否则,如果您的容器已经在运行,您可以使用 exec
命令:
docker exec -it mongoContainer mongo
我也很努力但找到了解决方案的事情:
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"
-p
标志,但不要输入您的密码,因为它会出现在您的 bash / shell 历史记录中。
从 Docker Hub 下载最新的 MongoDB Docker 镜像
sudo docker pull mongo
现在设置 MongoDB 容器
docker run --name containername mongo
通过 bash shell 客户端与数据库交互
docker exec -it containername bash
启动 MongoDB shell 客户端
mongo
扩展和更新 @vladzam
答案,如果您的容器已经在 docker
中运行,您可以使用 exec mongosh
命令登录并传递如下选项:
docker exec -it database-dev mongosh -u "myLogin" -p "myPass"
假设您在主机上安装了 mongo,这就是我几年前问这个问题时的情况。这是我尝试过的另一种方法:打开一个新终端
mongo 127.0.0.1:28000
您的 mongo shell 现在在此终端中启动。