mongodb docker
编写compose
services:
mongodb:
image: mongo:6.0.27
container_name: mongodb
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD}
MONGO_INITDB_DATABASE: ${MONGO_DATABASE}
ports:
- "27017:27017"
volumes:
- ./data/db:/data/db
- ./data/configdb:/data/configdb
- ./init-scripts:/docker-entrypoint-initdb.d
- ./config/mongod.conf:/etc/mongod.conf:ro
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
command:
- mongod
- --config
- /etc/mongod.conf
networks:
- app_network
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
app_network:
driver: bridge
2、创建数据目录
mkdir -p /app/mongo/{config,data,init-scripts}
3、编辑配置文件
vim /app/mongo/config/mongod.conf
# ===============================
# MongoDB 6.0 Production Config
# ===============================
systemLog:
destination: file
path: /proc/1/fd/1
logAppend: true
# 降低网络连接日志噪音
component:
accessControl:
verbosity: 0
network:
verbosity: 0
# ===============================
# Storage
# ===============================
storage:
dbPath: /data/db
wiredTiger:
engineConfig:
# 根据内存调整
cacheSizeGB: 4
collectionConfig:
blockCompressor: snappy
indexConfig:
prefixCompression: true
# ===============================
# Network
# ===============================
net:
port: 27017
bindIp: 0.0.0.0
maxIncomingConnections: 1000
# ===============================
# Security
# ===============================
security:
authorization: enabled
# ===============================
# Operation Profiling
# ===============================
operationProfiling:
mode: slowOp
slowOpThresholdMs: 200
# ===============================
# Replication (单机不用开启)
# ===============================
#replication:
# replSetName: rs0
4、创建初始化环境变量
cat .env
MONGO_USERNAME=admin
MONGO_PASSWORD=自定义密码
MONGO_DATABASE=app_db
5、启动
docker compose up -d

浙公网安备 33010602011771号