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

posted @ 2026-07-29 10:11  追梦$少年  阅读(7)  评论(0)    收藏  举报