ตั้งค่า MySQL ด้วย Docker Compose

Jan. 7, 2025 · boychawin

Docker Compose เป็นเครื่องมือที่ช่วยให้การจัดการ Container หลายตัวในโปรเจกต์ของคุณง่ายและสะดวกขึ้น

บทความนี้ เราจะเน้นการตั้งค่า MySQL เพื่อใช้ในสภาพแวดล้อมการพัฒนาด้วย Docker Compose พร้อมตัวอย่างไฟล์ docker-compose.yml แบบ Dev-Friendly ที่คุณสามารถนำไปใช้ได้ทันที!


ตัวอย่างไฟล์ docker-compose.yml

version: "3.9"
services:
  db:
    image: arm64v8/mysql:latest # รองรับสถาปัตยกรรมแบบ ARM เช่น Apple Silicon 
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: my_database
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    ports:
      - "3306:3306"
    networks:
      - app_network

networks:
  app_network:
    driver: bridge

อธิบายรายละเอียดของไฟล์

  1. version: "3.9"

    • ใช้เวอร์ชัน 3.9 ของ Docker Compose ซึ่งเป็นเวอร์ชันที่รองรับฟีเจอร์ใหม่ๆ
  2. services.db

    • Service ชื่อ db ถูกตั้งค่าให้ใช้ MySQL Image รุ่นล่าสุดที่รองรับ CPU สถาปัตยกรรม arm64v8
    • กำหนดค่า Environment Variables:
      • MYSQL_ROOT_PASSWORD: รหัสผ่านของ root user (ต้องตั้งค่าปลอดภัยใน production)
      • MYSQL_DATABASE: ชื่อ Database ที่จะสร้างเริ่มต้น
      • MYSQL_USER และ MYSQL_PASSWORD: ผู้ใช้และรหัสผ่านสำหรับใช้งาน Database
    • Ports: แปลงพอร์ต 3306 ใน Docker ไปยังพอร์ต 3306 บนเครื่อง Host เพื่อให้เข้าถึงได้
    • Networks: เชื่อมต่อผ่าน Network ที่ชื่อ app_network
  3. networks.app_network

    • กำหนด Network ประเภท bridge เพื่อให้บริการทั้งหมดใน Compose เชื่อมต่อกันได้สะดวก

ขั้นตอนการใช้งาน

  1. สร้างไฟล์ docker-compose.yml สร้างไฟล์ในโฟลเดอร์โปรเจกต์ของคุณและใส่โค้ดด้านบนลงไป

  2. รันคำสั่ง Docker Compose เปิด Terminal/Command Line และใช้คำสั่ง

docker-compose up -d

คำสั่งนี้จะสร้างและรัน Container MySQL ขึ้นมา

  1. ตรวจสอบการทำงาน

    • คุณสามารถตรวจสอบว่า MySQL ทำงานได้ผ่านคำสั่ง:
    docker ps
    
    • จากนั้นลองเชื่อมต่อไปที่ MySQL ผ่านเครื่องมือ เช่น MySQL Workbench โดยใช้ข้อมูลต่อไปนี้:
      • Host: localhost
      • Port: 3306
      • Username: user
      • Password: password

การใช้งาน Docker Compose ใน Dev Environment

การตั้งค่าด้วย Docker Compose ทำให้ Devs ไม่ต้องเสียเวลาติดตั้ง MySQL บนเครื่องหลัก คุณสามารถ:

  • แยกการตั้งค่าฐานข้อมูลเฉพาะโปรเจกต์
  • รัน Container ใหม่ได้ตลอดเวลาโดยไม่กระทบระบบอื่น
  • เปลี่ยนเวอร์ชัน MySQL หรือย้ายไปใช้ Database ตัวอื่นได้ง่าย เพียงแค่แก้ไข docker-compose.yml

สรุป

บทความนี้ได้นำเสนอวิธีตั้งค่า MySQL ด้วย Docker Compose พร้อมตัวอย่างไฟล์ที่คุณสามารถนำไปใช้งานได้ทันที การใช้งาน Docker Compose ไม่เพียงช่วยลดความซับซ้อน แต่ยังช่วยให้การพัฒนาง่ายขึ้นและมีความยืดหยุ่นสูง