การสร้างอิมเมจ Docker แบบกำหนดเอง
สร้างอิมเมจ Docker แบบกำหนดเองแรกสำหรับแอปพลิเคชันอย่างง่าย พร้อมติดแท็กและกำหนดเวอร์ชันอย่างถูกต้อง
การสร้างอิมเมจ Docker แบบกำหนดเอง เป็นบทเรียน Docker & DevOps Fundamentals ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Docker & DevOps Fundamentals และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Docker & DevOps Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
สร้าง Docker image แรกของคุณ
เหตุใดจึงควรสร้างอิมเมจแบบกำหนดเอง อิมเมจเหล่านี้ช่วยให้คุณจัดแพ็กเกจแอปเฉพาะของคุณ การพึ่งพา และการกำหนดค่าไว้ในหน่วยแบบพกพาเดียว ซึ่งเป็นหัวใจสำคัญของความสม่ำเสมอและการนำไปใช้งานที่ง่าย
คุณกำหนดวิธีสร้างอิมเมจนี้โดยใช้ไฟล์ที่เรียกว่า Dockerfile

เว็บแอปแบบง่ายของเรา
เราจะใส่เว็บแอป Python Flask แบบง่ายมากลงในคอนเทนเนอร์ เมื่อคุณเข้าที่อยู่เว็บของแอป แอปจะส่งกลับข้อความ "Hello from Docker!" เท่านั้น
สมมติว่าในไดเรกทอรีมีไฟล์เหล่านี้:
app.py: โค้ดแอปพลิเคชัน Pythonrequirements.txt: รายการการพึ่งพาของ PythonDockerfile: คำสั่งสำหรับสร้างอิมเมจ
โค้ดแอปพลิเคชัน Flask
นี่คือแอป Flask พื้นฐานที่เขียนด้วย Python ของเรา แอปจะรอรับการเชื่อมต่อที่พอร์ต 5000 และตอบกลับด้วย "Hello from Docker!"
คุณสามารถเรียกใช้แอปนี้ในเครื่องของคุณได้ (หลังจากติดตั้ง Flask แล้ว) เพื่อดูการทำงานจริง
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello from Docker!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')การระบุสิ่งที่ต้องพึ่งพา
แอปของเราต้องใช้ไลบรารี Flask เราระบุไลบรารีนี้ไว้ใน requirements.txt ไฟล์นี้จะบอกด็อกเกอร์ (และตัวจัดการแพ็กเกจของ Python อย่าง pip) ว่าต้องติดตั้งอะไรบ้าง
วิธีนี้ช่วยให้แน่ใจว่าอิมเมจของเรามีไลบรารีที่จำเป็นทั้งหมดเพื่อให้แอปทำงานได้
Flask==2.3.2ส่วนประกอบของ Dockerfile
Dockerfile คือไฟล์ข้อความที่มีคำสั่งสำหรับสร้างอิมเมจ คำสั่งแต่ละรายการจะสร้างเลเยอร์หนึ่งขึ้นมา คำสั่งที่เราจะใช้มีดังนี้:
FROM: ระบุอิมเมจพื้นฐาน (เช่น Python)WORKDIR: กำหนดไดเรกทอรีทำงานภายในคอนเทนเนอร์COPY: คัดลอกไฟล์จากเครื่องของคุณเข้าไปในอิมเมจRUN: เรียกใช้คำสั่ง (เช่น ติดตั้งสิ่งที่ต้องพึ่งพา)EXPOSE: แจ้งให้ด็อกเกอร์ทราบว่าคอนเทนเนอร์รอรับการเชื่อมต่อที่พอร์ตใดCMD: กำหนดคำสั่งเริ่มต้นที่จะเรียกใช้เมื่อคอนเทนเนอร์เริ่มทำงาน
การสร้าง Dockerfile
นี่คือ Dockerfile ฉบับสมบูรณ์สำหรับแอป Flask ของเรา ให้วางไฟล์นี้ไว้ในไดเรกทอรีเดียวกับ app.py และ requirements.txt
# Use an official Python runtime as a parent image
FROM python:3.9-slim-buster
# Set the working directory in the container
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY requirements.txt .
COPY app.py .
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Make port 5000 available to the world outside this container
EXPOSE 5000
# Run app.py when the container launches
CMD ["python", "app.py"]คำสั่ง `docker build`
ตอนนี้มาสร้างอิมเมจของเรากัน เปิดเทอร์มินัลในไดเรกทอรีที่มี Dockerfile และไฟล์แอปของคุณอยู่
แฟล็ก -t จะกำหนดแท็กให้กับอิมเมจของเราด้วยชื่อ (my-flask-app) และเวอร์ชัน (1.0) ส่วน . จะบอกด็อกเกอร์ให้ใช้ไดเรกทอรีปัจจุบันเป็นบริบทการสร้าง
docker build -t my-flask-app:1.0 .
การตรวจสอบอิมเมจใหม่ของคุณ
หลังจากการสร้างเสร็จสมบูรณ์ คุณสามารถตรวจสอบได้ว่าอิมเมจใหม่มีอยู่จริง โดยแสดงรายการอิมเมจด็อกเกอร์ทั้งหมดในเครื่อง
ให้มองหา my-flask-app ที่มีแท็ก 1.0 ในผลลัพธ์
docker images
การเปิดใช้คอนเทนเนอร์แอปของคุณ
ได้เวลาลองดูแอปของคุณทำงานแล้ว ใช้ docker run เพื่อสร้างและเริ่มต้นคอนเทนเนอร์จากอิมเมจของคุณ
-p 5000:5000 จะแมปพอร์ต 5000 บนเครื่องโฮสต์ของคุณกับพอร์ต 5000 ภายในคอนเทนเนอร์ ส่วน -d จะเรียกใช้คอนเทนเนอร์ในโหมดแยกการทำงาน (ทำงานอยู่เบื้องหลัง)
docker run -d -p 5000:5000 my-flask-app:1.0
เปิด http://localhost:5000 ในเบราว์เซอร์เพื่อดูข้อความ "Hello from Docker!"
แนวทางปฏิบัติที่ดีในการติดแท็กอิมเมจ
แท็กมีความสำคัญอย่างยิ่งต่อการจัดการอิมเมจเวอร์ชันต่าง ๆ แนวทางทั่วไปคือใช้การกำหนดเวอร์ชันเชิงความหมาย (เช่น 1.0.0, 2.1.5) และใช้แท็ก latest ด้วย
คุณสามารถเพิ่มแท็กหลายรายการให้กับอิมเมจได้โดยใช้ docker tag:
docker tag my-flask-app:1.0 my-flask-app:latest
วิธีนี้ทำให้คุณอ้างถึงอิมเมจเดียวกันด้วยชื่อต่างกันได้ จึงมีความยืดหยุ่นในการนำไปใช้งาน
ตรวจสอบความเข้าใจอย่างรวดเร็ว
พิจารณา Dockerfile และคำสั่งสร้างต่อไปนี้:
# Dockerfile content
FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello"]
docker build -t my-app:v1 .ข้อใดต่อไปนี้เป็นข้อความที่เป็น TRUE เกี่ยวกับคำสั่ง docker build -t my-app:v1 .
สรุป: อิมเมจแบบกำหนดเอง
เก่งมาก คุณได้เรียนรู้วิธี:
- เตรียมแอปพลิเคชันอย่างง่ายสำหรับการนำไปใช้ในคอนเทนเนอร์
- เขียน
Dockerfileพื้นฐานโดยใช้คำสั่งสำคัญ (FROM,WORKDIR,COPY,RUN,EXPOSE,CMD) - สร้างอิมเมจด็อกเกอร์แบบกำหนดเองโดยใช้
docker build -t - ตรวจสอบอิมเมจของคุณด้วย
docker images - เรียกใช้คอนเทนเนอร์จากอิมเมจแบบกำหนดเองด้วย
docker run -p - เข้าใจความสำคัญของการติดแท็กและกำหนดเวอร์ชันให้อิมเมจ
บทถัดไป เราจะลงลึกเกี่ยวกับโครงสร้างของอิมเมจด็อกเกอร์ด้วยเลเยอร์ รวมถึงเทคนิคเพิ่มประสิทธิภาพขนาดและเวลาสร้างอิมเมจ
คำถามที่พบบ่อย
บทเรียน “การสร้างอิมเมจ Docker แบบกำหนดเอง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การสร้างอิมเมจ Docker แบบกำหนดเอง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Docker & DevOps Fundamentals ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Docker & DevOps Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การสร้างอิมเมจ Docker แบบกำหนดเอง”
สร้างอิมเมจ Docker แบบกำหนดเองแรกสำหรับแอปพลิเคชันอย่างง่าย พร้อมติดแท็กและกำหนดเวอร์ชันอย่างถูกต้อง คุณปฏิบัติ Docker & DevOps Fundamentals ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Docker & DevOps Fundamentals หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Docker & DevOps Fundamentals บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การสร้างอิมเมจ Docker แบบกำหนดเอง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Docker & DevOps Fundamentals นี้ได้ไหม
ได้ บทเรียน Docker & DevOps Fundamentals ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ทำความเข้าใจ Dockerfile
- การสร้างอิมเมจ Docker แบบกำหนดเอง
- เลเยอร์อิมเมจและการเพิ่มประสิทธิภาพ
- การสร้างหลายขั้นตอนและอิมเมจที่เล็กลง