Docker· ~16 นาที
Docker Compose — รันหลายคอนเทนเนอร์ (+ Lab)
นิยามทั้งระบบ (web + db) ในไฟล์เดียว สั่งขึ้นพร้อมกัน
สั่ง docker run ทีละ container เหมือนเปิดเครื่องใช้ไฟฟ้าทีละตัว · Docker Compose เหมือนสวิตช์รวมที่กดครั้งเดียวเปิดทั้งบ้าน — นิยามทุก service (เว็บ, ฐานข้อมูล, cache) ในไฟล์ YAML เดียว แล้วสั่งขึ้นพร้อมกัน
Docker Compose เหมาะกับแอปที่มีหลาย container ทำงานร่วมกัน (เช่น เว็บ + ฐานข้อมูล) · เขียนทุกอย่างใน compose.yaml แล้วจัดการทั้งชุดด้วยคำสั่งเดียว
compose.yaml เดียว = หลาย service ขึ้นพร้อมกัน คุยกันด้วยชื่อ
compose.yamldocker compose up
▼ สร้าง network + volume ให้อัตโนมัติwebbuild: .
เรียกชื่อ db
dbpostgres
🧪 Lab: เว็บ + ฐานข้อมูลด้วยไฟล์เดียว
services:
web:
build: . # build จาก Dockerfile ในโฟลเดอร์นี้
ports:
- "8080:3000"
environment:
DB_HOST: db # เรียก service "db" ด้วยชื่อได้เลย
depends_on:
- db
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: secret
volumes:
- pgdata:/var/lib/postgresql/data # เก็บข้อมูลถาวร
volumes:
pgdata:docker compose up -d # สร้าง+รันทั้งชุด (เบื้องหลัง)
docker compose ps # ดูสถานะทุก service
docker compose logs -f web # ดู log ของ service web
docker compose down # หยุด+ลบทั้งชุด (เติม -v = ลบ volume ด้วย)สรุป Key Takeaways
- Compose นิยามหลาย service ในไฟล์เดียว สั่งขึ้น/ลงทั้งชุดด้วย docker compose up/down
- service ใน compose เดียวกันคุยกันด้วยชื่อ (network อัตโนมัติ)
- เหมาะ dev บนเครื่องเดียว — งาน production หลายเครื่องไป Kubernetes
อ่านจบแล้วอย่าลืมทำเครื่องหมาย

