创建 docker-compose.yml 文件
version: '3.5'
services:
# 服务名称为 mongodb,该名称主要用于容器之间服务的 dns 解析
mongodb:
# 容器的名称为 mymongo
container_name: mymongo
# 使用的镜像名称
image: mongo:latest
# 当 docker 服务启动后,自动启动 mongodb 容器
restart: always
# 对外映射的端口
ports:
- "27017:27017"
environment:
# 初始化一个 root 角色的用户 root 密码是 root
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=root
# 宿主机硬盘目录映射容器内的存放数据的目录
volumes:
- ./:/data/db
# 增加启动参数,--auth,表示连接 mongodb 需要用户名和密码
command:
- "--auth"
添加MongoDB连接用户和密码:
1、进入创建的MongoDB容器
docker exec -it mongo-test mongosh
2、创建MongoDB用户
#进入 admin 的数据库
use admin
#创建管理员用户
db.createUser(
{
user: "admin",
pwd: "123456",
roles: [ { role: "root", db: "admin" } ]
}
)
#创建有可读写权限的用户. 对于一个特定的数据库, 比如'demo'
db.createUser({
user: 'test',
pwd: '123456',
roles: [{role: "read", db: "demo"}]
})