# เริ่มต้นใช้งาน Docker Compose สำหรับมือใหม่

2 min read
Table of Contents

Docker Compose คืออะไร?

Docker Compose เป็นเครื่องมือที่ช่วยให้คุณสามารถจัดการ หลาย container ได้ง่ายขึ้น โดยใช้ไฟล์กำหนดค่าที่เรียกว่า docker-compose.yml แทนการรันคำสั่ง docker run ทีละตัว เหมาะสำหรับการพัฒนาและทดสอบแอปพลิเคชันที่มีหลายบริการ เช่น Web Server, Database, และ Cache

ทำไมต้องใช้ Docker Compose?

  • จัดการหลาย container พร้อมกัน: คุณสามารถสั่งให้ container หลายตัวเริ่มทำงานพร้อมกันได้ด้วยคำสั่งเดียว
  • ลดความซับซ้อน: ไม่ต้องจำคำสั่ง docker run ยาว ๆ อีกต่อไป
  • กำหนดค่าได้ง่าย: ใช้ไฟล์ YAML เพื่อกำหนดค่าต่าง ๆ เช่น port, volume, และ environment variables
  • เหมาะสำหรับทีมพัฒนา: ทุกคนในทีมสามารถใช้ไฟล์ docker-compose.yml เดียวกันได้

การติดตั้ง Docker Compose

ก่อนเริ่มต้น คุณต้องติดตั้ง Docker และ Docker Compose บนเครื่องของคุณ:

  1. ติดตั้ง Docker:

    • สำหรับ macOS และ Windows: ดาวน์โหลด Docker Desktop จาก Docker Website
    • สำหรับ Linux:
      Terminal window
      sudo apt update
      sudo apt install docker.io
  2. ตรวจสอบการติดตั้ง Docker Compose:

    Terminal window
    docker compose version

    หากยังไม่ได้ติดตั้ง ให้ติดตั้งผ่าน Docker Desktop หรือดูวิธีติดตั้งเพิ่มเติมใน Docker Compose Documentation

เริ่มต้นใช้งาน Docker Compose

1. สร้างไฟล์ docker-compose.yml

ตัวอย่างไฟล์ docker-compose.yml สำหรับแอปพลิเคชันที่มี Web Server (Nginx) และ Database (MySQL):

version: '3.8'
services:
web:
image: nginx:latest
ports:
- '8080:80'
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: testdb
MYSQL_USER: user
MYSQL_PASSWORD: password
ports:
- '3306:3306'

2. รัน Docker Compose

  1. เปิด Terminal และไปยังโฟลเดอร์ที่มีไฟล์ docker-compose.yml
  2. รันคำสั่ง:
    Terminal window
    docker compose up
  3. Docker Compose จะดึง image ที่จำเป็นและเริ่ม container ทั้งหมด

3. ตรวจสอบสถานะ

ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบสถานะของ container:

Terminal window
docker compose ps

4. หยุดการทำงาน

เมื่อคุณต้องการหยุด container ทั้งหมด ให้ใช้คำสั่ง:

Terminal window
docker compose down

คำอธิบายตัวอย่าง

  • Web Service:

    • ใช้ Nginx เป็น Web Server
    • เปิด port 8080 บนเครื่อง host และ map ไปยัง port 80 ใน container
    • Mount โฟลเดอร์ ./html บนเครื่อง host ไปยัง /usr/share/nginx/html ใน container
  • Database Service:

    • ใช้ MySQL เป็น Database
    • กำหนด environment variables สำหรับการตั้งค่า database เช่น MYSQL_ROOT_PASSWORD และ MYSQL_DATABASE
    • เปิด port 3306 บนเครื่อง host และ map ไปยัง port 3306 ใน container

คำสั่งที่มีประโยชน์

  • ดู logs ของ container:
    Terminal window
    docker compose logs
  • รีสตาร์ท container:
    Terminal window
    docker compose restart
  • ลบ container และ volume ทั้งหมด:
    Terminal window
    docker compose down -v

สรุป

Docker Compose เป็นเครื่องมือที่ช่วยให้การจัดการ container หลายตัวเป็นเรื่องง่ายและสะดวก โดยเฉพาะสำหรับการพัฒนาแอปพลิเคชันที่มีหลายบริการ ลองเริ่มต้นใช้งานด้วยตัวอย่างในบทความนี้ และคุณจะพบว่าการใช้ Docker Compose ช่วยลดความซับซ้อนในงานของคุณได้มาก!


ทรัพยากรเพิ่มเติม: