docker run -d --network crh_network --name some-mongo -p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=example \
mongo
-p 27017:27017 端口映射
--name some-mongo 容器名称
-e MONGO_INITDB_ROOT_USERNAME=root 账户
-e MONGO_INITDB_ROOT_PASSWORD=example 密码
--network crh_network 使用crh_network 这个docker网络,如果没有需要自己创建docker网络
如果在docker run允许MongoDB时没有创建用户,可以用以下方式创建用户
#进入mongoDB容器
# -it 跟容器名称 或者 容器id
docker exec -it mongo bash
#连接mongoDB服务
mongo
#尝试显示所有数据库,结果会报错
show dbs
#使用admin,创建超级管理员
use admin
db.createUser({user: "root",pwd: "example",roles: [ { role: "root", db: "admin" } ]})
version: '3'
services:
mongo:
container_name: mongo
image: mongo # 可以修改为自己需要的版本
restart: always # 是否重启
networks:
- crh_network
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root # 如果密码不生效,删除映射文件
MONGO_INITDB_ROOT_PASSWORD: example
volumes:
- /etc/localtime:/etc/localtime # 时区
- ./srv/mongodb/data/db:/data/db # 挂载数据目录
- ./srv/mongodb/data/log:/var/log/mongodb # 挂载日志目录
- ./srv/mongodb/data/config:/etc/mongo # 挂载配置目录
mongo-express:
image: mongo-express
container_name: mongo-ui
restart: always
ports:
- 8086:8081
networks:
- crh_network
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
networks:
crh_network:
external: true