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

การเขียน Dockerfile สำหรับอิมเมจ

เรียนรู้การเขียน Dockerfile เพื่อกำหนดวิธีบรรจุสภาพแวดล้อมและส่วนอ้างอิงของแอปพลิเคชันลงในอิมเมจ

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

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

What are Dockerfiles?

Welcome to creating your own Docker images! The heart of this process is the Dockerfile.

A Dockerfile is a simple text file that contains a series of instructions. These instructions tell Docker exactly how to build a Docker image, step by step.

Why Use a Dockerfile?

Dockerfiles automate the image creation process. Instead of manually setting up an environment, you define it once in a Dockerfile.

  • Reproducibility: Ensures everyone builds the exact same image.
  • Version Control: Dockerfiles can be stored in Git, just like your code.
  • Efficiency: Speeds up development and deployment workflows.

Starting Point: The FROM Instruction

Every Dockerfile must start with the FROM instruction. It specifies the base image your image will be built upon.

Think of it as choosing the operating system and initial software for your container. For example, ubuntu:22.04 or node:18-alpine.

FROM node:18-alpine

Running Commands: The RUN Instruction

The RUN instruction executes commands during the image build process. This is where you install software, update packages, or create directories.

Each RUN instruction creates a new layer in your image.

FROM node:18-alpine
RUN apk add --no-cache git

Setting the Workspace: WORKDIR

The WORKDIR instruction sets the working directory for any subsequent RUN, CMD, ENTRYPOINT, COPY, or ADD instructions.

It's good practice to set a specific directory for your application files.

FROM node:18-alpine
WORKDIR /app

Adding Files: The COPY Instruction

The COPY instruction copies files or directories from your local machine (the build context) into the Docker image filesystem.

The first argument is the source path on your machine, the second is the destination path inside the image.

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./

Installing Dependencies

After copying your project's dependency files (like package.json for Node.js), you'll typically use RUN again to install them.

This step ensures your application has all it needs to run.

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .

Exposing Ports: The EXPOSE Instruction

The EXPOSE instruction informs Docker that the container listens on the specified network ports at runtime.

It's documentation for users, not an actual publishing of the port. You'll publish ports when you run the container.

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000

Default Command: The CMD Instruction

The CMD instruction provides a default command to be executed when a container starts from the image.

Unlike RUN, CMD runs when the container is launched, not during the build. You can override it when running the container.

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

Complete Dockerfile Example

Here's a full example of a simple Dockerfile for a Node.js web application. Each line contributes to building the final image.

# Use an official Node.js runtime as a parent image
FROM node:18-alpine

# Set the working directory in the container
WORKDIR /app

# Copy package.json and package-lock.json to install dependencies
COPY package*.json ./

# Install application dependencies
RUN npm install

# Copy the rest of the application code
COPY . .

# Make port 3000 available to the world outside this container
EXPOSE 3000

# Define the command to run your app
CMD ["npm", "start"]

Dockerfile Instruction Check

Which Dockerfile instruction is used to execute commands during the image build process, such as installing packages or creating directories?

Recap: Crafting Dockerfiles

You've learned the essential instructions for crafting Dockerfiles:

  • FROM: Sets the base image.
  • RUN: Executes commands during build.
  • WORKDIR: Sets the working directory.
  • COPY: Copies files into the image.
  • EXPOSE: Declares listening ports.
  • CMD: Sets the default command to run on container start.

Mastering these allows you to define your application's environment precisely!

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

บทเรียน “การเขียน Dockerfile สำหรับอิมเมจ” ฟรีหรือไม่

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

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

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

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

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

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

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

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

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

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

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