1. 下载 MongoDB 镜像
docker pull mongo
2. 运行容器
docker run -p 27017:27017 --name docker_mongodb -v /mongodb_data/:/data/db -it -d mongo --auth
-v:将宿主机 /mongodb_data 目录挂载到容器中的 /data/db 中,此目录为 MongoDB 数据存储位置 -d:设置容器以守护进程方式运行 -p:宿主机 27017 端口映射到容器 27017 端口
3. 查看容器运行情况
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
71351dc5b914 mongo "docker-entrypoint.s…" 15 hours ago Up 15 hours 0.0.0.0:27017->27017/tcp docker_mongodb
4. 进入 MongoDB 容器,添加用户以及测试数据
docker exec -it docker_mongodb bash
root@71351dc5b914:/# mongo
admin 库添加用户 root,角色:userAdminAnyDatabase
> use admin
switched to db admin
> db.createUser({ user: "root", pwd: "rootpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
新建数据库 my,添加用户 user1,角色:dbOwner
> use my
switched to db my
> db.createUser({user:"user1",pwd:"password",roles:[{role:"dbOwner",db:"my"}]})
Successfully added user: {
"user" : "user1",
"roles" : [
{
"role" : "dbOwner",
"db" : "my"
}
]
}
> use my
switched to db my
> db.auth("user1","password")
1
> db.address.insert({name:"daodao",address:"hangzhou"})
WriteResult({ "nInserted" : 1 })