用来挂载mongodb的数据目录、配置文件、日志目录
mkdir data/config
mkdir data/log
mkdir data/db
version: "3.1"
services:
mongo:
image: mongo:6.0.2
container_name: mongo
ports:
- 27017:27017
restart: on-failure:10
environment:
TZ: Asia/Shanghai
MONGO_INITDB_ROOT_USERNAME: ${MONGO_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD}
volumes:
- /etc/localtime:/etc/localtime # 时区
- /home/mayanan/mongodb/data/db:/data/db # 挂载数据目录
- /home/mayanan/mongodb/data/log:/var/log/mongodb # 挂载日志目录
- /home/mayanan/mongodb/data/config:/etc/mongo # 挂载配置目录
mongo-express:
image: mongo-express
container_name: mongo-express
restart: on-failure:10
ports:
- 8081:8081
links:
- mongo:mongodb
depends_on:
- mongo
environment:
ME_CONFIG_MONGODB_SERVER: mongodb
ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGO_USERNAME}
ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGO_PASSWORD}
# ME_CONFIG_MONGODB_URL: mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@mongo:27017/
ME_CONFIG_BASICAUTH_USERNAME: ${MONGO_USERNAME}
ME_CONFIG_BASICAUTH_PASSWORD: ${MONGO_PASSWORD}
networks:
default:
name: my-docker-compose-network
记得在当前目录下创建.env文件,将用户名和密码写入到.env文件中:
MONGO_USERNAME=admin
MONGO_PASSWORD=123456
查看用户名和密码在docker-compose.yaml中是否渲染成功:
sudo docker-compose config
sudo docker-compose up
报错:mongo-express无法连接mongo
解决办法:
# 重启mongo-express
sudo docker start mongo-express
sudo docker exec -it mongo /bin/bash
cd /bin
mongosh
show dbs
use admin
db.auth("username","password")
返回结果:
{ ok: 1 }
代表登录成功,在此查看所有数据库:
show dbs;
查询结果:
admin 100.00 KiB
config 60.00 KiB
local 72.00 KiB
浏览器输入:ip:8081
,输入用户名密码登录即可。