การอ่าน Dockerfile และการรันคอนเทนเนอร์

แนวคิดการ Containerization และ Virtualization

Julia Ostheimer

Freelance AI Consultant

ทบทวนคำศัพท์ Docker

 

จาก Dockerfile ไปยัง Docker container

แนวคิดการ Containerization และ Virtualization

Docker instructions กับ Docker commands

  • Docker instructions ระบุวิธีสร้าง Docker image

Docker instructions ใน Dockerfile

  • Docker commands: คำสั่งผ่าน Command Line Interface (CLI)

Docker commands ใน CLI

แนวคิดการ Containerization และ Virtualization

รูปแบบของ Dockerfile

 

Dockerfile - คอมเมนต์

แนวคิดการ Containerization และ Virtualization

รูปแบบของ Dockerfile

 

Dockerfile - Instruction

แนวคิดการ Containerization และ Virtualization

รูปแบบของ Dockerfile

 

Dockerfile - คำสั่งของ Docker instruction

แนวคิดการ Containerization และ Virtualization

รูปแบบของ Dockerfile

 

Dockerfile - อาร์กิวเมนต์ของ Docker instruction

แนวคิดการ Containerization และ Virtualization

ลำดับการทำงานใน Dockerfile

  • ทำงานตามลำดับจากบนลงล่าง
  • ส่วนเริ่มต้นของ Dockerfile:
    • Metadata
    • คอมเมนต์
    • อาร์กิวเมนต์
    • คำสั่ง FROM
แนวคิดการ Containerization และ Virtualization

ภาพรวม Docker instructions

  • Docker instructions สำคัญ
    • FROM
    • COPY
    • RUN
    • ENTRYPOINT
แนวคิดการ Containerization และ Virtualization

คำสั่ง FROM

  • ระบุ Docker image ที่มีอยู่แล้ว
  • กำหนด image ที่ใช้เป็นฐานในการสร้าง
    • "จุดเริ่มต้น"  

ไวยากรณ์:

FROM <name_of_image>

ตัวอย่าง:

# Define the image on which to build
FROM python:3.10
แนวคิดการ Containerization และ Virtualization

คำสั่ง COPY

  • คัดลอกไฟล์หรือไดเรกทอรี
    • จากต้นทาง (<source>) ไปยังปลายทาง (<destination>)
    • ไฟล์ที่จำเป็นสำหรับ Docker instructions ถัดไป  

ไวยากรณ์:

COPY <source> <destination>

ตัวอย่าง:

# Copy files/folders to the main folder of the container
COPY . .
แนวคิดการ Containerization และ Virtualization

คำสั่ง RUN

  • รันคำสั่งภายในคอนเทนเนอร์
    • ใช้ได้กับคำสั่งใดก็ได้ที่รันผ่าน CLI

 

ไวยากรณ์:

RUN <command>

ตัวอย่าง:

# Install the application's dependencies
RUN pip install -r requirements.txt
แนวคิดการ Containerization และ Virtualization

คำสั่ง ENTRYPOINT

  • กำหนดพฤติกรรมเริ่มต้นของคอนเทนเนอร์
    • ระบุคำสั่งที่รันเมื่อเริ่มต้น
    • วัตถุประสงค์หลักของคอนเทนเนอร์  

ไวยากรณ์:

ENTRYPOINT ["command", "argument"]

ตัวอย่าง:

# Run the script when the container starts
ENTRYPOINT ["python", "hello_world.py"]
แนวคิดการ Containerization และ Virtualization

การประกอบ instructions ใน Dockerfile

# Define the image on which to build
FROM python:3.10
แนวคิดการ Containerization และ Virtualization

การประกอบ instructions ใน Dockerfile

# Define the image on which to build
FROM python:3.10

# Copy files/folders to the main folder of the container
COPY . .
แนวคิดการ Containerization และ Virtualization

การประกอบ instructions ใน Dockerfile

# Define the image on which to build
FROM python:3.10

# Copy files/folders to the main folder of the container
COPY . .

# Install the application's dependencies
RUN pip install -r requirements.txt
แนวคิดการ Containerization และ Virtualization

การประกอบ instructions ใน Dockerfile

# Define the image on which to build
FROM python:3.10

# Copy files/folders to the main folder of the container
COPY . .

# Install the application's dependencies
RUN pip install -r requirements.txt

# Run the script when the container starts
ENTRYPOINT ["python", "hello_world.py"]
แนวคิดการ Containerization และ Virtualization

คำสั่ง docker build

  • สร้าง Docker image จาก Dockerfile
    • Dockerfile ต้องอยู่ใน context ของการ build (<context>)
    • รันเป็นคำสั่งผ่าน Docker client ทาง CLI

 

ไวยากรณ์:

docker build <context>
แนวคิดการ Containerization และ Virtualization

คำสั่ง docker run

  • สร้างและรัน Docker container จาก Docker image
    • ต้องระบุ Docker image เป็นอาร์กิวเมนต์ (<name_of_image>)
    • รันเป็นคำสั่งผ่าน Docker client ทาง CLI

 

ไวยากรณ์:

docker run <name_of_image>
แนวคิดการ Containerization และ Virtualization

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

แนวคิดการ Containerization และ Virtualization

Preparing Video For Download...