การสร้างไฟล์ compose.yaml

Docker ระดับกลาง

Mike Metzger

Data Engineering Consultant

YAML

  • Yet Another Markup Language
    • YAML Ain't Markup Language
  • ไฟล์ข้อความที่การเยื้องบรรทัดมีความสำคัญ (เหมือน Python)
  • ใช้ในหลายสถานการณ์ด้านพัฒนาซอฟต์แวร์เพื่อกำหนดค่า
  • กฎอาจซับซ้อน แต่หลักคือให้วางรายการในแนวเดียวกับตัวอย่าง
services:
  postgres:
    container_name: postgres
    image: postgres:latest
    ports:
      - "5432:5432"
    restart: always
  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4:latest
    ports:
      - "5050:80"
    restart: always
Docker ระดับกลาง

ส่วนหลัก

  • แต่ละส่วนจัดการคอมโพเนนต์ที่แตกต่างกัน
  • services: ระบุรายการคอนเทนเนอร์ที่จะโหลด
  • networks: กำหนดค่าเครือข่าย
  • volumes: ควบคุมการ mount volume
  • configs: จัดการตัวเลือกการกำหนดค่าโดยไม่ต้องสร้าง image เอง
  • secrets: จัดการรหัสผ่าน, token, API key และอื่น ๆ
  • ดูข้อมูลเพิ่มเติมได้ที่ เอกสาร ของ Docker Compose
services:
  ... # Define containers

networks: ... # Define any networking details
volumes: ... # Define storage requirements
configs: ... # Define special config details
secrets: ... # Define passwords / etc
1 https://docs.docker.com/compose/compose-file/
Docker ระดับกลาง

ส่วน Services

  • กำหนดทรัพยากรทั้งหมดที่แอปพลิเคชันต้องการ
  • ระบุคอนเทนเนอร์และ image ที่ใช้เป็นหลัก
  • มีตัวเลือกมากมาย แต่ใช้ได้เฉพาะกับคอนเทนเนอร์แต่ละตัวเท่านั้น
  • ใช้การเยื้องบรรทัดตามความเหมาะสม
  • ส่วนย่อยแรกคือชื่อของแต่ละคอมโพเนนต์ ตามด้วยการตั้งค่า
Docker ระดับกลาง

ตัวอย่าง Services

services:

# Resource name postgres:
# Container name, otherwise random container_name: postgres
# Container image to use image: postgres:latest
# Any port mapping required ports: # Network details - "5432:5432"
# Next resource pgadmin: ...
  • ชื่อทรัพยากร
  • container_name: ชื่อที่กำหนดให้คอนเทนเนอร์ หากไม่ระบุจะเป็นชื่อสุ่ม
  • image: ระบุ container image ที่ต้องการใช้
  • ports: รายการการแมป port ที่ต้องการ
  • ตามด้วยทรัพยากรถัดไปที่ต้องการ
Docker ระดับกลาง

หมายเหตุเพิ่มเติม

  • syntax ของ config.yaml มีความละเอียดมาก
    • ครอบคลุมเพียงส่วนเล็กน้อยของตัวเลือกใน compose.yaml
    • ควรศึกษาเอกสารประกอบเพิ่มเติม!
  • โดยทั่วไปไม่จำเป็นต้องสร้างไฟล์ compose.yaml ขึ้นมาใหม่ตั้งแต่ต้น
1 https://docs.docker.com/compose/compose-file/
Docker ระดับกลาง

มาฝึกกันเถอะ!

Docker ระดับกลาง

Preparing Video For Download...