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 ไม่เพียงช่วยลดความซับซ้อน แต่ยังช่วยให้การพัฒนาง่ายขึ้นและมีความยืดหยุ่นสูง