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
อธิบายรายละเอียดของไฟล์
version: "3.9"- ใช้เวอร์ชัน 3.9 ของ Docker Compose ซึ่งเป็นเวอร์ชันที่รองรับฟีเจอร์ใหม่ๆ
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
- Service ชื่อ
networks.app_network- กำหนด Network ประเภท
bridgeเพื่อให้บริการทั้งหมดใน Compose เชื่อมต่อกันได้สะดวก
- กำหนด Network ประเภท
ขั้นตอนการใช้งาน
สร้างไฟล์
docker-compose.ymlสร้างไฟล์ในโฟลเดอร์โปรเจกต์ของคุณและใส่โค้ดด้านบนลงไปรันคำสั่ง Docker Compose เปิด Terminal/Command Line และใช้คำสั่ง
docker-compose up -d
คำสั่งนี้จะสร้างและรัน Container MySQL ขึ้นมา
ตรวจสอบการทำงาน
- คุณสามารถตรวจสอบว่า MySQL ทำงานได้ผ่านคำสั่ง:
docker ps- จากนั้นลองเชื่อมต่อไปที่ MySQL ผ่านเครื่องมือ เช่น MySQL Workbench โดยใช้ข้อมูลต่อไปนี้:
- Host:
localhost - Port:
3306 - Username:
user - Password:
password
- Host:
การใช้งาน Docker Compose ใน Dev Environment
การตั้งค่าด้วย Docker Compose ทำให้ Devs ไม่ต้องเสียเวลาติดตั้ง MySQL บนเครื่องหลัก คุณสามารถ:
- แยกการตั้งค่าฐานข้อมูลเฉพาะโปรเจกต์
- รัน Container ใหม่ได้ตลอดเวลาโดยไม่กระทบระบบอื่น
- เปลี่ยนเวอร์ชัน MySQL หรือย้ายไปใช้ Database ตัวอื่นได้ง่าย เพียงแค่แก้ไข
docker-compose.yml
สรุป
บทความนี้ได้นำเสนอวิธีตั้งค่า MySQL ด้วย Docker Compose พร้อมตัวอย่างไฟล์ที่คุณสามารถนำไปใช้งานได้ทันที การใช้งาน Docker Compose ไม่เพียงช่วยลดความซับซ้อน แต่ยังช่วยให้การพัฒนาง่ายขึ้นและมีความยืดหยุ่นสูง