镜像信息
dockerFile: https://github.com/docker-library/mongo
初始化创建
mkdir -p {db,configdb,logs,mongodbConfig}
touch docker-compose.yml
配置7.0
services:
mongo-7.0.0-server:
image: mongodb/mongodb-community-server:7.0.0-ubi8
container_name: mongo-7.0.0-server
restart: always
privileged: true
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=111111
ports:
- 20017:27017
volumes:
- ./db:/data/db
- ./configdb/mongod.conf:/data/configdb/mongod.conf
- ./mongodbLog:/var/log/mongodb/
command:
- --wiredTigerCacheSizeGB
- '1.5'
logging:
driver: "json-file"
options:
max-size: "500m" #限制文件大小
max-file: "3" #限制数量
[!注意]
需要对 db 文件赋予权限,否则没法写入,执行 chmod 755 ./db
这里我没深究,应该是用户不对之类的,看了下dockerFie 会创建一个 999 的用户和分组
测试
# 查看容器日志
docker logs -f mongo-7.0.0-server
# 进入容器
docker exec -it mongo-7.0.0-server bash
mongosh
# 选择 admin
use admin
# 鉴权
db.auth('root', '111111')
# 获取用户
db.getUsers()
配置4.4ps:官方不维护…
version: "3.3"
services:
mongo-4.4.10-server:
image: mongo:4.4.10
container_name: mongo-4.4.10-server
restart: always
privileged: true
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=111111
ports:
- 20017:20017
volumes:
# 数据目录 挂载出来后,即使删除容器,再用该挂载数据与docker-compose.yml文件启动容器,即可恢复到原来的数据以及用户信息
- ./db:/data/db
- ./logs/mongod.log:/var/log/mongodb/mongod.log
# 挂载mongoDB的配置文件
- ./configdb/mongod.conf:/etc/mongod.conf
# 执行的时候指定配置文件执行
command: mongod -f /etc/mongod.conf
logging:
driver: "json-file"
options:
max-size: "500m" #限制文件大小
max-file: "3" #限制数量
开放端口
[[Linux-防火墙#开启端口]]