如何在docker容器中启动MongoDB外壳?

xxe27gdn  于 2022-09-18  发布在  Docker
关注(0)|答案(5)|浏览(133)

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

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

但是我想打开这个容器中的外壳来输入mongo命令。我应该运行什么命令来执行相同的操作?

pobjuy32

pobjuy321#

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

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

否则,如果您的容器已经在运行,则可以使用exec命令:

docker exec -it mongoContainer mongo
dm7nw8vv

dm7nw8vv2#

我也曾挣扎过,但最终找到了解决方案:

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"
x8diyxa7

x8diyxa73#

从Docker Hub下载最新的MongoDB Docker镜像

sudo docker pull mongo

现在设置MongoDB容器

docker run --name containername mongo

通过bash外壳客户端与数据库交互

docker exec -it containername bash

启动MongoDB外壳客户端

mongo
rryofs0p

rryofs0p4#

扩展和更新@vladzam答案,如果您的容器已经在docker中运行,则可以使用带有如下登录和传递选项的exec mongosh命令:

docker exec -it database-dev mongosh -u "myLogin" -p "myPass"
nxagd54h

nxagd54h5#

假设您的主机上安装了Mongo,这就是我几年前问这个问题时的情况*。这是我尝试的另一种方式:打开一个新的航站楼

mongo 127.0.0.1:28000

您的mongo外壳现在在这个终端中开始。

相关问题