MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để tạo DB cho vùng chứa MongoDB khi khởi động?

Đây là một giải pháp gọn gàng hơn bằng cách sử dụng docker-compose và một js tập lệnh.

Ví dụ này giả định rằng cả hai tệp (docker-comp.yml và mongo-init.js) nằm trong cùng một thư mục.

docker-compost.yml

version: '3.7'

services:
    mongodb:
        image: mongo:latest
        container_name: mongodb
        restart: always
        environment:
            MONGO_INITDB_ROOT_USERNAME: <admin-user>
            MONGO_INITDB_ROOT_PASSWORD: <admin-password>
            MONGO_INITDB_DATABASE: <database to create>
        ports:
            - 27017:27017
        volumes:
            - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro

mongo-init.js

db.createUser(
        {
            user: "<user for database which shall be created>",
            pwd: "<password of user>",
            roles: [
                {
                    role: "readWrite",
                    db: "<database to create>"
                }
            ]
        }
);

Sau đó, chỉ cần khởi động dịch vụ bằng cách chạy lệnh docker-compile sau đây

docker-compose up --build -d mongodb 

Lưu ý :Mã trong thư mục docker-entrypoint-init.d chỉ được thực thi nếu cơ sở dữ liệu chưa từng được khởi tạo trước đó.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Công cụ giám sát và khám phá máy chủ không được dùng nữa

  2. MongoDB:Làm thế nào để xác định một lược đồ?

  3. Nhóm theo khoảng thời gian ngày

  4. nhận các thuộc tính lược đồ từ Mô hình Mongoose

  5. Làm thế nào để sử dụng dấu chấm trong tên trường?