How does Docker Work? ฉบับเข้าใจง่ายใน 3 นาที
สำหรับใครที่สงสัยว่า Docker ทำงานยังไง? วันนี้ผมสรุป Architecture ของมันมาให้เห็นภาพง่ายๆ ครับ
1. Docker Client 💻 (ส่วนสั่งการ)
เปรียบเสมือน “รีโมตคอนโทรล” ที่เราใช้สั่งงาน นี่คือจุดที่เราพิมพ์คำสั่งต่างๆ ลงใน Terminal เช่น:
docker build➜ สั่งให้สร้าง Imagedocker pull➜ สั่งให้ไปดึง Image มาจาก Registrydocker run➜ สั่งให้สร้างและรัน Container จาก Image
2. Docker Host 🧠 (สมองและพื้นที่ทำงาน)
นี่คือเครื่อง Server หรือ Computer ที่ Docker ติดตั้งอยู่ ประกอบด้วย 2 ส่วนหลัก:
- Docker Daemon (
dockerd): คือ “สมอง” ที่คอยรับคำสั่งจาก Client มาประมวลผล และจัดการทุกอย่างเบื้องหลัง - Images & Containers:
- 📄 Images: คือ “แม่แบบ” (Template) หรือไฟล์ต้นฉบับ (เช่น Ubuntu, Nginx) เป็นเหมือนไฟล์ Read-only
- 📦 Containers: คือ Image ที่ถูกปลุกให้ “มีชีวิต” ทำงานได้จริง เปรียบเสมือนเครื่องเสมือนขนาดเล็ก
3. Docker Registry ☁️ (คลังเก็บของ)
เปรียบเสมือน “App Store” สำหรับ Docker Images
- Docker Hub / GitHub Container Registry: เป็นที่ที่เราไปดึง (
pull) Image มาใช้งาน หรือส่ง (push) Image ที่เราสร้างขึ้นไปเก็บไว้

🖼️ ภาพรวมการทำงาน (The Big Picture)
ข้อมูลโค้ด
graph LR
User((User)) -- คำสั่ง --> Client[Docker Client]
Client -- ส่ง API --> Daemon[Docker Daemon]
subgraph Host [Docker Host]
Daemon
Images[Images]
Containers[Running Containers]
end
subgraph Registry [Docker Registry]
Hub[Docker Hub / Cloud Registry]
end
Daemon -- Pull/Push --> Hub
Daemon -- สร้าง --> Containers
Images -- ต้นแบบ --> Containers
🎯 สรุปสั้นที่สุด
Docker คือระบบที่ช่วยให้เราสร้างและรันแอปในรูปแบบ “Container” ได้สะดวกขึ้น โดยใช้ Client ส่งคำสั่งไปให้ Daemon จัดการภาพรวม และดึง Images จาก Registry มารันใช้งานจริง
💡 Engineer’s Note: ในการทำงานจริงบน Cloud (เช่น Azure) เราอาจจะไม่ได้ใช้ Docker Host เดี่ยวๆ แต่จะใช้ผ่าน Container Orchestration อย่าง Kubernetes (K8s) หรือ Azure Container Apps ซึ่งเบื้องหลังก็ใช้หลักการ Container Runtime แบบเดียวกันนี้แหละครับ!