1.pull官方的mongodb Image

docker pull mongo

2.不带--auth 把容器run起来,将/data/db 映射到想要存储数据的位置,将27017映射到需要的端口。

docker run -d -p 27017:27017 -v /your/desired/data/directory:/data/db mongo

3.进入容器,按照顺序运行如下命令

3-0

docker exec -it <container_id> /bin/bash

3-1

mongo

3-2

use admin

3-3

db.createUser({ user: "admin", pwd: "xxxxxx", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

3-4

db.auth("admin", "上面的密码")

3-5

use 其他要添加账户信息的数据库名

3-6

db.createUser({ user: "username", pwd: "password", roles: [{ role: "readWrite", db: "其他要添加账户信息的数据库名" }] })

4.删除容器。

docker stop <container_id>
docker rm <container_id>

5.创建带一个--auth的容器,映射和第二步一样。

docker run -d -p 27017:27017 -v /your/desired/data/directory:/data/db --name mongodb_auth mongo --auth

6.启动容器,访问数据库的格式为:

mongodb://账户:密码@host:27017/数据库名

7.如果需要让mongodb随系统启动的话

docker update --restart=always <容器ID 或 容器名称>

追加新的数据库时只用重复3-1,3-2,(跳过3-3),3-4,3-5,3-6即可。