Docker คืออะไร และทำงานยังไง
เครื่องมือห่อแอปเป็นคอนเทนเนอร์ + สถาปัตยกรรม client/daemon/registry
ปูพื้นฐาน: ก่อนจะเข้าใจ Docker เราต้องเข้าใจปัญหาสุดคลาสสิกก่อน ปกติเวลา Developer เขียนโปรแกรมเสร็จ แล้วส่งไปรันที่เซิร์ฟเวอร์หรือเครื่องของเพื่อน มันมักจะพัง! เพราะเวอร์ชันของโปรแกรม หรือการตั้งค่าในแต่ละเครื่องไม่เหมือนกัน
Docker เหมือนโรงงานผลิตและระบบขนส่งตู้คอนเทนเนอร์ — ห่อแอปพร้อมทุกอย่างที่มันต้องใช้ลงกล่องมาตรฐาน แล้วส่งไปรันที่ไหนก็ได้เหมือนกันเป๊ะ ไม่มีปัญหา "บนเครื่องผมรันได้นะ" อีกต่อไป
Docker เป็นแพลตฟอร์มยอดนิยมที่สุดสำหรับสร้างและรัน Container (คอนเทนเนอร์) · มันทำให้การห่อแอป (โค้ด + library + runtime + ค่าตั้งค่า) เป็นเรื่องง่าย แล้วรันได้เหมือนกันทุกเครื่องที่มี Docker
สถาปัตยกรรม Docker (3 ส่วนหลัก)
CLI สั่งงาน · daemon ทำงานจริง · registry เก็บ image
- Docker Client (CLI) — คำสั่ง
docker ...ที่เราพิมพ์ ส่งคำสั่งไปยัง daemon - Docker Daemon (dockerd) — ตัวหลักที่ build image, รัน container, จัดการเครือข่าย/volume จริง
- Registry — คลังเก็บ image (เช่น Docker Hub) ให้ push ขึ้น/pull ลงมาใช้
docker info
docker versionสรุป 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 ใช้แทนกันได้เกือบหมด

