Docker Compose

   อัปเดตล่าสุด Feb. 26, 2024

Docker Compose คือ เครื่องมือหรือคำสั่งที่จะทำให้เราสามารถรัน Docker Containers หลาย ๆ คอนเทนเนอร์ได้อย่างสะดวกและง่ายในคำสั่งเดียว แทนที่จะรันทีละ container ช่วยให้สามารถจัดการแอปพลิเคชันที่ประกอบด้วยหลาย services ได้สะดวก โดยกำหนดการตั้งค่าต่าง ๆ ผ่านไฟล์ docker-compose.yml แทนการใช้คำสั่ง docker run แยกทีละคอนเทนเนอร์


ข้อดีของ Docker Compose

  • ลดความซับซ้อน โดยแทนที่จะรันคอนเทนเนอร์ทีละตัว เราก็สามารถใช้ Docker Compose ช่วยจัดการการรันคอนเทนเนอร์ทั้งหมดภายในครั้งเดียวได้เลย
  • สามารถกำหนดค่าต่าง ๆ เช่น port, volume (สำหรับทำ data mapping) และรวมไปถึง Environment Vaiables ต่าง ๆ ได้อย่างง่ายดายภายในไฟล์ docker-compose.yml
  • สามารถทดสอบและรันแอปพลิเคชันแบบ Multi-Containers (หลายคอนเทนเนอร์) ได้อย่างรวดเร็ว


ต้วอย่างคำสั่งการใช้งาน Docker Compose 

โดย Docker Compose นั้นจะมีรูปแบบดังต่อไปนี้ โดยที่เราสามารถสร้างไฟล์ที่มีชื่อว่า docker-compose.yml ขึ้นมา แล้วทำการกำหนดค่าต่าง ๆ ลงไป เช่น

version: "3.8"

services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./app.html:/usr/share/nginx/html:ro
app:
image: python:latest
command: ["python", "app.py"]
volumes:
- ./src:/app:rw


คำอธิบาย

  • version : คือ การระบุเวอร์ชันของไฟล์ docker-compose.yml
  • services: คือ การกำหนด services ต่าง ๆ ที่ประกอบอยู่ในแอปพลิเคชัน
  •  web : คือ บริการเว็บเซิร์ฟเวอร์
  •  image : คือ image ที่ใช้รันคอนเทนเนอร์
  • ports  : คือ การกำหนดเพื่อแมพพอร์ต (port mapping) ระหว่างคอนเทนเนอร์กับโฮสต์
  • volumes  : คือ การกำหนดโวลุ่ม (volume) เพื่อแชร์ข้อมูลระหว่าง host กับคอนเทนเนอร์
  • app : คือ service แอปพลิเคชัน Python (ในตัวอย่างคือ Flask เฟรมเวิร์ค)
  • command : คือ คำสั่งที่ใช้รันแอปพลิเคชันภายในคอนเทนเนอร์



คอร์สเรียนแนะนำ

Docker สำหรับนักพัฒนามืออาชีพ

คอร์สออนไลน์ สอนการใช้งาน Docker และแนวคิด containerization สำหรับ Dev…