ใช้งาน MongoDB บน Docker

Docker by Keptcode.com

Last Updated: 2024-09-30 20:08

Repo: Github.com (รบกวนกด Start ให้ด้วยนะคับ)

https://github.com/coachmaxz/docker-mongodb-example

โครงสร้างโฟลเดอร์

Path: [skeleton]

Language: Project Structure

├── backup/
├── data/
│  └── mongodb_01/
└── docker-compose.yml

สร้างไฟล์: รัน Container บน Docker Engine เบื้องต้น

Path: [skeleton]\docker-compose.yml

Language: Docker Engine

services:

  database_mongodb_01:
    image: mongo:7.0.14
    container_name: database-mongodb-01
    platform: linux/arm64/v8
    restart: always
    environment:
      - MONGO_INITDB_ROOT_USERNAME=superadmin
      - MONGO_INITDB_ROOT_PASSWORD=123456
      - VIRTUAL_PORT=27017
      - TERM=xterm
      - AUTH=yes
    volumes:
      - ./backup:/backup
      - ./data/mongodb_01:/data/db
    ports:
      - "27017:27017"
    networks:
      - database_mongodb_network
    command: mongod --auth

networks:
  database_mongodb_network:
    driver: bridge

ไฟล์: docker-compose.yml

[skeleton]/docker-compose.yml

รัน: คำสั่ง Docker เพื่อสร้าง Container ที่ต้องการ

Path: [skeleton]

Language: Bash

docker compose up -d

รีโมท: เข้าใช้งาน MongoDB บน Container

Path: [skeleton]

Language: Bash

docker exec -it database-mongodb-01 mongosh -u "superadmin" -p "123456" --authenticationDatabase "admin"

Create: Super Administrator

Path: [skeleton]

Language: Bash

# เลือก Database ที่ต้องการ ?
use db_mongodb_01

# สร้าง Super Administrator ใหม่
db.createUser({
  user: "admin_db_mongodb_01",
  pwd: "EX2a9q14g038cLrioLzQd",
  roles: [{
    role: "userAdminAnyDatabase",
    db: "admin"
  }]
})

# เพิ่ม Super Administrator ใหม่
db.auth("admin_db_mongodb_01", "EX2a9q14g038cLrioLzQd")

# แสดง Users ทั้งหมด
show users

## Output ##
# [
#   {
#     id: 'db_mongodb_01.admin_db_mongodb_01',
#     userId: UUID('1c36d468-8f14-46e3-9c2b-9c243cc87944'),
#     user: 'admin_db_mongodb_01',
#     db: 'db_mongodb_01',
#     roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ],
#     mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
#   }
# ]

สำหรับเชื่อมต่อ Database

  • host: 127.0.0.1
  • port: 27017
  • username: admin_db_mongodb_01
  • password: EX2a9q14g038cLrioLzQd
  • Database Name: db_mongodb_01

Connection String (URI Format)

Path: [skeleton]

Language: Bash

# Connection String
mongodb://admin_db_mongodb_01:EX2a9q14g038cLrioLzQd@127.0.0.1:27017/db_mongodb_01?authSource=db_mongodb_01

## Example ##
# host: 127.0.0.1
# port: 27017
# user: admin_db_mongodb_01
# pass: EX2a9q14g038cLrioLzQd
# dbName: db_mongodb_01