拉取镜像
docker pull mongo
运行MongoDB容器
docker run --name mongodb -p 27017:27017 -d mongo --auth
查看 mongo 进程
docker ps -a
然后就可以在Windows下启动MongoDB的客户端远程连接了
创建管理员admin 用户和密码
以 admin 用户身份进入mongo
docker exec -it a7e5d4e4ca69 mongo admin
创建一个 admin 管理员账号
db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
上述操作的记录详情如下:
root@iz2zei0x4t16rv0e5buzvhz tmp]# docker exec -it a7e5d4e4ca69 mongo admin
MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017/admin
Implicit session: session { "id" : UUID("5bd17aa0-f8f6-454e-a1f3-6917d98336bc") }
MongoDB server version: 4.0.4
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
> use admin
switched to db admin
> db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "userAdminAnyDatabase", db
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
> exit
创建普通用户、密码和数据库
以 admin 用户身份进入mongo
docker exec -it a7e5d4e4ca69 mongo admin
对 admin 进行身份认证
db.auth("admin","admin123456");
创建 用户、密码和数据库
db.createUser({ user: 'swen', pwd: 'swen123456', roles: [ { role: "readWrite", db: "app" } ] });
退出
exit
上述操作记录如下:
[root@iz2zei0x4t16rv0e5buzvhz tmp]# docker exec -it a7e5d4e4ca69 mongo admin
MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017/admin
Implicit session: session { "id" : UUID("592da935-824f-4593-b056-a381915c7205") }
MongoDB server version: 4.0.4
> db.auth("admin","admin123456");
1
> db.createUser({ user: 'swen', pwd: 'swen123456', roles: [ { role: "readWrite", db: "app" } ] }
Successfully added user: {
"user" : "swen",
"roles" : [
{
"role" : "readWrite",
"db" : "app"
}
]
}
> exit
bye
[root@iz2zei0x4t16rv0e5buzvhz tmp]
对MongoDB进行操作
以 admin 用户身份进入mongo
docker exec -it a7e5d4e4ca69 mongo admin
对 swen 进行身份认证
db.auth("swen","swen123456");
切换数据库(没有则会自动创建)
use app
创建collection添加数据
db.test.save({name:"zhangsan"});
上述操作记录如下
[root@iz2zei0x4t16rv0e5buzvhz tmp]# docker exec -it a7e5d4e4ca69 mongo admin
MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017/admin
Implicit session: session { "id" : UUID("13f9c7bc-fc90-42b0-bfd8-a1a7a27aaee9") }
MongoDB server version: 4.0.4
> db.auth("swen","swen123456");
1
> use app
switched to db app
> db.test.save({name:"zhangsan"});
WriteResult({ "nInserted" : 1 })
> exit
bye
[root@iz2zei0x4t16rv0e5buzvhz tmp]#
在windows下远程连接docker容器下的MongoDB
找到自己windows下MongoDB的安装目录下的bin文件输入cmd
输入:mongo Linux的IP地址
出现下图代表连接成功!就可以操作数据库了