ข้ามไปเนื้อหาหลัก
Docker· ~13 นาที· อัปเดตล่าสุด

Docker คืออะไร และทำงานยังไง

เครื่องมือห่อแอปเป็นคอนเทนเนอร์ + สถาปัตยกรรม client/daemon/registry

ปูพื้นฐาน: ก่อนจะเข้าใจ Docker เราต้องเข้าใจปัญหาสุดคลาสสิกก่อน ปกติเวลา Developer เขียนโปรแกรมเสร็จ แล้วส่งไปรันที่เซิร์ฟเวอร์หรือเครื่องของเพื่อน มันมักจะพัง! เพราะเวอร์ชันของโปรแกรม หรือการตั้งค่าในแต่ละเครื่องไม่เหมือนกัน

Docker คือโรงงานและระบบขนส่งตู้คอนเทนเนอร์

Docker เหมือนโรงงานผลิตและระบบขนส่งตู้คอนเทนเนอร์ — ห่อแอปพร้อมทุกอย่างที่มันต้องใช้ลงกล่องมาตรฐาน แล้วส่งไปรันที่ไหนก็ได้เหมือนกันเป๊ะ ไม่มีปัญหา "บนเครื่องผมรันได้นะ" อีกต่อไป

Docker เป็นแพลตฟอร์มยอดนิยมที่สุดสำหรับสร้างและรัน Container (คอนเทนเนอร์) · มันทำให้การห่อแอป (โค้ด + library + runtime + ค่าตั้งค่า) เป็นเรื่องง่าย แล้วรันได้เหมือนกันทุกเครื่องที่มี Docker

สถาปัตยกรรม Docker (3 ส่วนหลัก)

CLI สั่งงาน · daemon ทำงานจริง · registry เก็บ image

Docker CLIdocker ...
สั่ง (API)
Docker Daemondockerd
pull / push
RegistryDocker Hub
daemon จัดการ
Images
Containers
Volumes / Network
Docker CLI (client) สั่งงาน → Docker daemon (dockerd) ทำงานจริง → ดึง/ส่ง image กับ registry
  • Docker Client (CLI) — คำสั่ง docker ... ที่เราพิมพ์ ส่งคำสั่งไปยัง daemon
  • Docker Daemon (dockerd) — ตัวหลักที่ build image, รัน container, จัดการเครือข่าย/volume จริง
  • Registry — คลังเก็บ image (เช่น Docker Hub) ให้ push ขึ้น/pull ลงมาใช้
docker info
docker version
💻 Hands-on: ตรวจสอบสถานะของ Docker Daemon และ Client

สรุป Key Takeaways

  • Docker = แพลตฟอร์มสร้าง/รัน container ที่นิยมที่สุด แก้ปัญหา "works on my machine"
  • สถาปัตยกรรม 3 ส่วน: Client (CLI) → Daemon (dockerd) → Registry
  • Container = แนวคิด · Docker = เครื่องมือ · image ของ Docker คือสิ่งที่ K8s เอาไปรัน

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

Docker จำเป็นแค่ไหนถ้าเป้าหมายคือ Kubernetes

จำเป็นเป็นฐาน — K8s รัน "container image" ซึ่งสร้างและเข้าใจผ่านเครื่องมือฝั่ง Docker เป็นหลัก: Dockerfile, image layer, registry, volume, network ล้วนโผล่ซ้ำใน K8s ทั้งหมด — เรียน Docker ให้แน่นก่อนแล้ว K8s จะง่ายขึ้นครึ่งหนึ่ง

Docker Desktop เสียเงินไหม มีทางเลือกอะไร

ฟรีสำหรับส่วนบุคคล/บริษัทเล็ก แต่บริษัทใหญ่ (>250 คน หรือรายได้ >$10M) ต้องจ่าย — ทางเลือกฟรี: colima/lima บน macOS, Docker Engine ตรงๆ บน Linux, Rancher Desktop หรือ Podman ที่ CLI ใช้แทนกันได้เกือบหมด

อ่านจบแล้วอย่าลืมทำเครื่องหมาย