在Docker中使用MongoDB

在开发中,时常会使用一下MongoDB服务器。以往每次都需要在本地安装或是在虚拟机中安装,比较麻烦。现在有了 Docker, 就可以通过 Docker 直接使用,轻量,方便。

拉取镜像

在 Docker Hub 中有 MongoDB 的官方镜像,在这里我选择 4.2 版。使用命令拉取镜像:

1
docker pull mongo:4.2-bionic

拉取下来后可以通过 docker images 查看,大概363M大小。

启动 MongoDB

执行一下命令启动 MongoDB,

1
docker run --name mongodev --restart=always -d -p 27017:27017 mongo:4.2-bionic mongod --auth

该命令新建一个名为:mongodev 容器,并在容器中启动 mongod,为安全起见,启动了认证模式。

设置初始用户

要为 mongodb 设置初始的用户,我们可以直接使用本机中的 mongo 客户端的进行操作,如果没有在本机安装 mongo 客户端,也可以使用一下命令,进入到容器 mongodev 中使用容器中的客户端。

1
docker exec -i -t mongodev bash

执行以后,可以看到命令行已经变成了 Linux 中的提示符,类似:

1
root@1986038635da:/#

root 后面串:”1986038635da” 是随机生成的主机名,所以你的可能和我的不一样,不影响后续操作。

接着运行 mongo 客户的:

1
root@1986038635da:/# mongo

系统反馈:

1
2
3
4
5
6
7
8
9
10
MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("df52901d-5885-4b0a-a970-2492a507100d") }
MongoDB server version: 4.2.1
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user

选择 admin 数据库

1
use admin

系统提示:

1
switched to db admin

现在,加入一个 root 用户,名为 admin, 密码也设置为 admin123

1
db.createUser({user:"admin",pwd:"admin123",roles:[{role:"root",db:"admin"}]})

系统提示:

1
2
3
4
5
6
7
8
9
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}

OK! 大工告成,连续执行两个 exit 命令退出容器,然后就可以在本机或是其它机器上通过 mongo 客户端或是应用程序连接到 27017 端口来使用 mongodb 数据库了。

如果使用 mongo 客户端,则执行:

1
mongo -u "admin" -p "admin123" <主机名或IP> --authenticationDatabase "admin"

本文标题:在Docker中使用MongoDB

文章作者:Morning Star

发布时间:2019年10月08日 - 15:10

最后更新:2021年04月16日 - 15:04

原始链接:https://www.mls-tech.info/docker/docker-use-mongodb/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。