วิธีติดตั้ง MongoDB ด้วย Docker Desktop
การติดตั้ง MongoDB ด้วย Docker Desktop เป็นวิธีที่สะดวกและรวดเร็ว เหมาะสำหรับการพัฒนาและทดสอบระบบ ในคู่มือนี้จะแนะนำทุกขั้นตอนตั้งแต่ต้นจนใช้งานได้จริง
ขั้นตอนที่ 1: ติดตั้ง Docker Desktop
- ดาวน์โหลด Docker Desktop จาก https://www.docker.com/products/docker-desktop
- ติดตั้งและเปิดโปรแกรม Docker Desktop
- รอให้ Docker Desktop รันจนพร้อมใช้งาน (ดูที่สถานะด้านล่างซ้าย)
ขั้นตอนที่ 2: สร้างไฟล์ docker-compose.yml
สร้างโฟลเดอร์สำหรับโปรเจค MongoDB แล้วสร้างไฟล์ docker-compose.yml ด้วยเนื้อหาดังนี้:
version: '3.8'
services:
mongodb:
image: mongo:latest
container_name: mongodb
restart: always
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: password123
volumes:
- mongodb_data:/data/db
volumes:
mongodb_data:
driver: local
คำอธิบายส่วนประกอบ:
- image:
mongo:latest- ใช้ MongoDB เวอร์ชันล่าสุด - ports:
27017:27017- เปิด port 27017 สำหรับเชื่อมต่อ - environment: กำหนด username และ password สำหรับ root user
- volumes: เก็บข้อมูลถาวร แม้จะ restart container
ขั้นตอนที่ 3: รัน MongoDB Container
เปิด Command Prompt หรือ PowerShell ในโฟลเดอร์ที่มีไฟล์ docker-compose.yml แล้วรันคำสั่ง:
docker-compose up -d
คำสั่งนี้จะ:
- ดาวน์โหลด MongoDB image (ถ้ายังไม่มี)
- สร้างและรัน container ในโหมด detached (-d)
ขั้นตอนที่ 4: ตรวจสอบสถานะ
ตรวจสอบว่า MongoDB รันอยู่หรือไม่:
docker ps
หรือดูใน Docker Desktop GUI ที่แท็บ Containers
ขั้นตอนที่ 5: เชื่อมต่อ MongoDB
วิธีที่ 1: ใช้ MongoDB Compass
- ดาวน์โหลด MongoDB Compass
- เปิดโปรแกรมและใช้ Connection String:
mongodb://admin:password123@localhost:27017
วิธีที่ 2: ใช้ Terminal เข้าไปใน Container
docker exec -it mongodb mongosh -u admin -p password123
วิธีที่ 3: เชื่อมต่อจาก Application
Python (pymongo):
from pymongo import MongoClient
client = MongoClient('mongodb://admin:password123@localhost:27017/')
db = client['mydatabase']
print("Connected to MongoDB!")
Node.js (mongoose):
const mongoose = require('mongoose');
mongoose.connect('mongodb://admin:password123@localhost:27017/mydatabase')
.then(() => console.log('Connected to MongoDB!'))
.catch(err => console.error('Connection error:', err));
คำสั่งที่มีประโยชน์
หยุดการทำงาน:
docker-compose stop
เริ่มต้นใหม่:
docker-compose start
หยุดและลบ container:
docker-compose down
หยุดและลบทั้ง container และข้อมูล:
docker-compose down -v
ดู logs:
docker logs mongodb
การตั้งค่าเพิ่มเติม (Optional)
เพิ่ม MongoDB Express (Web UI)
แก้ไขไฟล์ docker-compose.yml เพื่อเพิ่ม MongoDB Express:
version: '3.8'
services:
mongodb:
image: mongo:latest
container_name: mongodb
restart: always
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: password123
volumes:
- mongodb_data:/data/db
mongo-express:
image: mongo-express:latest
container_name: mongo-express
restart: always
ports:
- "8081:8081"
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
ME_CONFIG_MONGODB_ADMINPASSWORD: password123
ME_CONFIG_MONGODB_URL: mongodb://admin:password123@mongodb:27017/
depends_on:
- mongodb
volumes:
mongodb_data:
driver: local
จากนั้นรัน:
docker-compose up -d
เปิดเบราว์เซอร์ไปที่ http://localhost:8081 เพื่อใช้งาน Web UI
Troubleshooting
ปัญหา: Port 27017 ถูกใช้งานแล้ว
- แก้ไข port ในไฟล์ docker-compose.yml เป็น
"27018:27017"แทน
ปัญหา: ไม่สามารถเชื่อมต่อได้
- ตรวจสอบว่า Docker Desktop รันอยู่
- ตรวจสอบว่า container ทำงานอยู่ด้วย
docker ps - ตรวจสอบ firewall settings
ปัญหา: ข้อมูลหายหลัง restart
- ตรวจสอบว่ามีการกำหนด volumes ไว้ในไฟล์ docker-compose.yml
สรุป
การติดตั้ง MongoDB ด้วย Docker Desktop ทำให้เราสามารถ:
- ติดตั้งและลบได้ง่าย ไม่กระทบกับระบบหลัก
- จัดการ version ต่างๆ ได้สะดวก
- เก็บข้อมูลแยกออกมาด้วย volumes
- ใช้ร่วมกับเครื่องมืออื่นๆ ผ่าน docker-compose
หวังว่าคู่มือนี้จะเป็นประโยชน์สำหรับการเริ่มต้นใช้งาน MongoDB ด้วย Docker Desktop ครับ! ![]()
