docker engin ทำหน้าที่อะไร
#พื้นฐานการเขียนเว็ปไซต์ #webserver #ติดเทรนด์ #ป้ายยากับlemon8
Docker Engine คือ ซอฟต์แวร์หลัก (Core Engine) ที่ทำหน้าที่เป็นตัวจัดการคอนเทนเนอร์แบบ Open-source โดยเปรียบเสมือน "ผู้จัดการระบบ" ที่คอยเปลี่ยน Code และไฟล์ตั้งค่าของคุณให้กลายเป็นคอนเทนเนอร์ที่รันได้จริงครับ
Docker Engine ทำหน้าที่อะไรบ้าง?
Docker Engine ใช้สถาปัตยกรรมแบบ Client-Server ซึ่งมีส่วนประกอบหลัก 3 ส่วนที่ทำงานร่วมกันดังนี้ครับ:
1. Docker Daemon (ชื่อโปรเซสคือ dockerd)
นี่คือ "หัวใจ" ของ Docker Engine รันอยู่เบื้องหลัง (Background) บน Host OS (เช่น Ubuntu ของคุณ) ทำหน้าที่:
จัดการ Objects: คอยสร้างและควบคุม Images, Containers, Networks และ Volumes
บริหารทรัพยากร: ติดต่อกับ Kernel ของ OS เพื่อขอใช้ CPU และ RAM ให้กับแต่ละคอนเทนเนอร์
ความปลอดภัย: กั้นขอบเขตไม่ให้คอนเทนเนอร์แต่ละตัวรบกวนกัน
2. REST API
เป็นช่องทางสื่อสารระหว่างตัว Daemon กับโปรแกรมภายนอก เปรียบเหมือน "เคาน์เตอร์สั่งอาหาร" ที่คอยรับคำสั่งว่าใครต้องการให้ Docker ทำอะไร
3. Docker CLI (Command Line Interface)
คือคำสั่งที่คุณพิมพ์ใน Terminal เช่น docker build หรือ docker run:
เมื่อคุณพิมพ์คำสั่ง CLI จะส่งคำสั่งนั้นผ่าน REST API ไปบอกให้ Daemon ทำงาน
ลำดับขั้นตอนการทำงาน (Workflow)
เพื่อให้เห็นภาพการทำหน้าที่ของมัน ลองดูตัวอย่างตอนคุณรันโปรเจกต์ my-server:
การอ่าน (Build): เมื่อคุณสั่ง docker build ตัว Engine จะอ่าน Dockerfile ทีละบรรทัดเพื่อสร้างเป็น Image (แผ่นพิมพ์เขียว)
การจัดเก็บ (Store): มันจะเก็บ Image นั้นไว้ในเครื่อง หรือดึงมาจาก Docker Hub
การรัน (Run): เมื่อคุณสั่ง docker run หรือ docker compose up ตัว Engine จะไปหยิบ Image มา "กางออก" กลายเป็น Container ที่ทำงานได้จริง
การเชื่อมต่อ (Networking): Engine จะสร้าง IP จำลองให้คอนเทนเนอร์ เพื่อให้ Nginx คุยกับ Node.js ได้ตามที่คุณตั้งค่าไว้
สรุปสั้นๆ
ถ้าคอนเทนเนอร์คือ "ตู้คอนเทนเนอร์สินค้า"... Docker Engine ก็คือ "รถเครนและเจ้าหน้าที่ในท่าเรือ" ที่คอยยกตู้ จัดวางตู้ ตรวจสอบความปลอดภัย และเชื่อมต่อท่อน้ำท่อไฟให้ตู้เหล่านั้นทำงานได้นั่นเองครับ







