Docker-compose搭建最新版MongoDB
1.目录结构
.
└── docker_mongodb
├── docker-compose.yml
└── db
2. docker-compose.yml
version: "3.5"
services:
mongodb:
image: mongo:latest
container_name: mongodb
restart: always
ports:
- "27017:27017"
environment:
TZ: Asia/Shanghai
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: 123456
volumes:
- ./db:/data/db
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
network_mode: "bridge"
mongo-express:
image: mongo-express:latest
container_name: mongo-express
ports:
- "27018:8081"
environment:
ME_CONFIG_OPTIONS_EDITORTHEME: 3024-night
ME_CONFIG_MONGODB_SERVER: mongodb
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
ME_CONFIG_MONGODB_ADMINPASSWORD: 123456
ME_CONFIG_BASICAUTH_USERNAME: admin
ME_CONFIG_BASICAUTH_PASSWORD: 123456
depends_on:
- mongodb
network_mode: "bridge"
3. 创建db文件夹
目录和文件截图如下
4. 启动服务
# 进入docker_mongodb目录下
cd /系统目录/docker_mongodb
# 启动服务
docker compose up -d
5.配置MongoDB数据库
a. 进入容器
docker exec -it mongodb bash
b.进入用户
mongosh -u admin -p 123456 --authenticationDatabase admin
c.进入 admin 的数据库
use admin;
d. 创建管理员用户
db.createUser({
user: "admin",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
e. 创建测试用户,特定于一个数据库,比如:django_pro
db.createUser({
user: 'django_pro',
pwd: 'djp123456',
roles: [{role: "readWrite", db: "django_pro"}]
})
f. 建立数据库
use django_pro;
g. 写入数据测试
db.info.save({name: 'lili', age: '25'})
h. 查询写入的数据
db.info.find();
备注
- mongo-express界面:http://localhost:27018/