Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
Shoper Gamer
•
ติดตาม
20 ธ.ค. เวลา 05:10 • การศึกษา
Docker Daemon คืออะไร
โดย
ทุกครั้งที่เราพิมพ์คำสั่ง docker run เพียงไม่กี่วินาที Container ก็พร้อมใช้งาน แต่เบื้องหลังความเรียบง่ายนั้นมีกลไกที่ซับซ้อนทำงานอยู่ หากเปรียบ Docker เป็นโรงงาน Docker Daemon ก็คือ "ผู้จัดการโรงงาน และ ระบบควบคุมอัตโนมัติ" ที่คอยรับคำสั่ง และ เปลี่ยนให้กลายเป็นการกระทำจริง ตั้งแต่การสร้าง Image ไปจนถึงการจัดการระบบเครือข่าย
1
★
Docker Daemon คืออะไร
Docker Daemon (dockerd) คือ กระบวนการพื้นหลัง (Background Process) ที่ทำหน้าที่เป็นเซิร์ฟเวอร์หลักของระบบ Docker มันจะคอยรันอยู่ตลอดเวลาเพื่อรอรับคำสั่งจาก Docker CLI ผ่านทาง REST API
★
องค์ประกอบของ Docker Daemon ตามบริบท
○ dockerd
ชื่อของกระบวนการที่รันในระบบ
○ Docker Engine
ชื่อเรียกโดยรวมเมื่อรวม Daemon เข้ากับส่วนประกอบอื่นๆ เช่น containerd และ runc
★
Docker Daemon ทำงานอย่างไร
สถาปัตยกรรมของ Docker เป็นแบบ Client-Server โดยมีขั้นตอนการทำงานดังนี้
1) รับคำสั่ง (API Server)
เมื่อเราพิมพ์คำสั่งใน Terminal ตัว Docker Client จะส่ง HTTP Request ไปยัง Daemon
2) จัดการทรัพยากร (Orchestration)
Daemon จะตรวจสอบว่าเราสั่งอะไร เช่น ถ้าสั่งรันแอป มันจะไปดูว่ามี Image ในเครื่องไหม ถ้าไม่มีก็ไปโหลดมา (Pull)
3) สั่งการ Runtime Daemon จะส่งต่อคำสั่งไปที่ containerd และ runc เพื่อสร้างตัวคอนเทนเนอร์ขึ้นมาจริงๆ ในระบบปฏิบัติการ
★
ประเภทและการติดตั้ง Daemon
○ Local Daemon
รันบนเครื่องส่วนตัวของเรา (เช่น Docker Desktop บน Windows/Mac)
○ Remote Daemon
รันบนเซิร์ฟเวอร์ระยะไกล เราสามารถสั่งงานจากเครื่องเราไปที่เซิร์ฟเวอร์นั้นได้ผ่านเครือข่าย
○ Linux Native
รันบน Linux Kernel โดยตรง ซึ่งมีประสิทธิภาพสูงสุด
★
คำสั่งจัดการ Docker Daemon ที่สำคัญ 🛠
ในฐานะ DevOps หรือ Developer การรู้วิธีจัดการกับตัว Daemon โดยตรงจะช่วยให้คุณควบคุมระบบได้ลึกกว่าแค่การรัน Container ทั่วไป
1) การตรวจสอบและควบคุมสถานะ (Systemd)
บน Linux (Ubuntu, CentOS, Debian) เราจัดการ Daemon ผ่าน systemctl :
```bash
# ตรวจสอบว่า Daemon รันอยู่หรือไม่ และดู Error เบื้องต้น
sudo systemctl status docker
# สั่งให้ Docker เริ่มทำงานใหม่หลังจากแก้ไข Config
sudo systemctl restart docker
# ตั้งค่าให้ Docker เริ่มทำงานอัตโนมัติทุกครั้งที่เปิดเครื่อง
sudo systemctl enable docker
```
2) การดูบันทึกเหตุการณ์ (Daemon Logs)
เมื่อ Docker รันไม่ได้ หรือ Container ดับไปเฉยๆ ให้เช็คที่ Log ของ Daemon:
```bash
# ดู Log แบบ Real-time เพื่อวิเคราะห์ปัญหาที่เกิดขึ้นขณะนั้น
sudo journalctl -u docker.service -f
# ดู Log ย้อนหลังโดยระบุเวลา
sudo journalctl -u docker.service --since "1 hour ago"
```
3) การปรับแต่งผ่านไฟล์ daemon.json (ตัวอย่างที่ใช้บ่อย)
คุณสามารถสร้างหรือแก้ไขไฟล์ที่ /etc/docker/daemon.json เพื่อเปลี่ยนพฤติกรรมของ Docker:
ตัวอย่าง: การจำกัดขนาด Log และ เปิดใช้งาน Debug
```json
{
"debug": true,
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
```
การตั้งค่านี้จะช่วยป้องกันไม่ให้ไฟล์ Log ของ Container บวมจนเต็มดิสก์
4) การรัน Daemon ในโหมด Debug (Manual)
หากต้องการไล่เช็คปัญหาแบบละเอียดสุดๆ ให้หยุด Service หลักก่อนแล้วรันด้วยตัวเอง:
```bash
# หยุด Service ปกติ
sudo systemctl stop docker
# รัน Daemon ด้วยตัวเองพร้อมโหมด Debug เพื่อดูข้อความ Error บนหน้าจอทันที
sudo dockerd --debug
```
5) การเชื่อมต่อกับ Remote Daemon
หากคุณมี Docker รันอยู่บนเซิร์ฟเวอร์ (192.168.1.10) และ ต้องการสั่งงานจากเครื่องตัวเอง:
```bash
# ตั้งค่า Environment Variable ให้ CLI วิ่งไปหา Daemon ที่เครื่องปลายทาง
export DOCKER_HOST=tcp://192.168.1.10:2375
# ทดสอบการเชื่อมต่อ (จะเห็นข้อมูลของเครื่องปลายทาง)
docker info
```
★
💡 ข้อควรระวัง
การเปิดให้ Docker Daemon เชื่อมต่อผ่าน Network (TCP) โดยไม่ตั้งค่า TLS (Certificate) เป็นความเสี่ยงอย่างมาก เพราะใครก็ตามที่รู้ IP จะสามารถควบคุมเครื่องเซิร์ฟเวอร์ของคุณได้ทันที ควรใช้ SSH Tunnel (ssh://user@host) แทนหากเป็นไปได้
✏️ Shoper Gamer
>>
https://shopergamer.vercel.app/
✓
Docker CLI คืออะไร 👇
>>
https://www.blockdit.com/posts/6946256cd2db646c4de45d3d
✓
WSL คืออะไร 👇
1
>>
https://www.blockdit.com/posts/6944db7416cf997d5e4f59d7
✓
SSH คืออะไร 👇
>>
https://www.blockdit.com/posts/67c5833b1b56c5310c95b59f
Credit :
👇
●
https://docs.docker.com/engine/daemon/start/
●
https://blog.sethanantp.com/what-you-need-to-know-before-docker-ps/
●
https://shorturl.at/Jdg0R
ข่าวรอบโลก
docker
เทคโนโลยี
บันทึก
1
1
1
1
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2025 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย