# เริ่มต้นใช้งาน Docker Compose สำหรับมือใหม่
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 บนเครื่องของคุณ:
-
ติดตั้ง Docker:
- สำหรับ macOS และ Windows: ดาวน์โหลด Docker Desktop จาก Docker Website
- สำหรับ Linux:
Terminal window sudo apt updatesudo apt install docker.io
-
ตรวจสอบการติดตั้ง 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
- เปิด Terminal และไปยังโฟลเดอร์ที่มีไฟล์
docker-compose.yml - รันคำสั่ง:
Terminal window docker compose up - Docker Compose จะดึง image ที่จำเป็นและเริ่ม container ทั้งหมด
3. ตรวจสอบสถานะ
ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบสถานะของ container:
docker compose ps4. หยุดการทำงาน
เมื่อคุณต้องการหยุด container ทั้งหมด ให้ใช้คำสั่ง:
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 ช่วยลดความซับซ้อนในงานของคุณได้มาก!
ทรัพยากรเพิ่มเติม: