Docker & Kubernetes for Developers · บทเรียน

การสร้างหลายขั้นตอนสำหรับอิมเมจใช้งานจริงขนาดเล็ก

เชี่ยวชาญ Dockerfile แบบหลายขั้นตอน เพื่อคอมไพล์หรือรวมแอปในขั้นตอนการสร้าง แล้วคัดลอกเฉพาะไฟล์ผลลัพธ์ไปยังอิมเมจสำหรับรันไทม์ขนาดเล็ก

บทเรียน 4 จาก 413 ขั้นตอน

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

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

The Fat Image Problem

A single-stage build often ships compilers, dev dependencies, and source code into production. The result is a large, slower-to-pull, larger-attack-surface image.

What Is a Multi-Stage Build

A multi-stage build uses several FROM statements in one Dockerfile. Earlier stages build artifacts; a final lean stage copies only what it needs to run.

A Go Multi-Stage Example

Compile in a Go image, then ship a tiny final image with just the binary.

FROM golang:1.22 AS build
WORKDIR /src
COPY . .
RUN go build -o app .

FROM alpine:3.20
COPY --from=build /src/app /app
ENTRYPOINT ["/app"]

Copying From a Named Stage

The key line is COPY --from=build. It pulls the compiled app binary out of the build stage, leaving the Go toolchain behind.

A Node.js Multi-Stage Example

Install and build with dev deps, then copy only the production output.

FROM node:20 AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-slim
WORKDIR /app
COPY --from=build /app/dist ./dist
COPY package*.json ./
RUN npm ci --omit=dev
CMD ["node", "dist/index.js"]

Choosing a Slim Base

Final stages should use minimal bases like alpine, -slim, or distroless. Smaller bases mean fewer packages and fewer vulnerabilities.

Distroless Images

Google distroless images contain only your app and its runtime, no shell or package manager. They are very small and hard to exploit interactively.

FROM gcr.io/distroless/static-debian12
COPY --from=build /src/app /app
ENTRYPOINT ["/app"]

Targeting a Specific Stage

You can build only up to a named stage with --target, useful for running tests in CI.

docker build --target build -t myapp:test .

Caching Dependencies

Copy dependency manifests before the rest of the source. Then dependency installation is cached and only re-runs when the manifest changes.

COPY package*.json ./
RUN npm ci
COPY . .

Measuring the Win

Compare sizes before and after. Multi-stage builds commonly shrink images from hundreds of MB to tens of MB.

docker images myapp

Combining With .dockerignore

Add a .dockerignore so build context excludes node_modules, .git, and secrets, speeding builds and avoiding leaking files into images.

node_modules
.git
*.env

Quick Check

Test what you have learned.

Recap

You learned to split Dockerfiles into build and runtime stages, copy only artifacts with --from, pick slim or distroless bases, target stages, and combine with .dockerignore for lean production images.

เริ่มต้นได้ฟรี

เรียนรู้ Docker & Kubernetes for Developers ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
12
บทเรียน
48

คำถามที่พบบ่อย

บทเรียน “การสร้างหลายขั้นตอนสำหรับอิมเมจใช้งานจริงขนาดเล็ก” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้างหลายขั้นตอนสำหรับอิมเมจใช้งานจริงขนาดเล็ก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Docker & Kubernetes for Developers ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Docker & Kubernetes for Developers มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างหลายขั้นตอนสำหรับอิมเมจใช้งานจริงขนาดเล็ก”

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

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Docker & Kubernetes for Developers หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Docker & Kubernetes for Developers บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างหลายขั้นตอนสำหรับอิมเมจใช้งานจริงขนาดเล็ก” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Docker & Kubernetes for Developers นี้ได้ไหม

ได้ บทเรียน Docker & Kubernetes for Developers ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การทำเว็บแอปพลิเคชันให้เป็นคอนเทนเนอร์
  2. การปรับแต่งอิมเมจ Docker
  3. แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยและระบบจริง
  4. การสร้างหลายขั้นตอนสำหรับอิมเมจใช้งานจริงขนาดเล็ก
← กลับไปที่ Docker & Kubernetes for Developers