ติดตั้ง Docker (Mac / Windows / Linux)
ลง Docker ให้พร้อมใช้ แล้วรันคอนเทนเนอร์แรกยืนยัน
ปูพื้นฐาน: โปรแกรม Docker แบ่งเป็น 2 แบบหลักๆ คือ Docker Desktop (มีหน้าตา UI ให้กด ใช้ง่าย เหมาะกับคอมพิวเตอร์ส่วนตัว) และ Docker Engine (มีแต่หน้าจอพิมพ์คำสั่ง เหมาะกับเซิร์ฟเวอร์)
ก่อนจะทำอาหารต้องมีเตาและครัวก่อน · บทนี้คือการติดตั้ง "ครัว Docker" ลงเครื่อง แล้วลองทำเมนูแรก (รัน container) เพื่อยืนยันว่าครัวใช้งานได้
Mac / Windows — ใช้ Docker Desktop
Docker Desktop คือแพ็กเกจสำเร็จรูป (มี daemon + CLI + GUI + Kubernetes ในตัว) เหมาะที่สุดสำหรับ Mac และ Windows
- ดาวน์โหลดจาก docker.com/products/docker-desktop เลือกตามชิป (Mac: Apple Silicon/Intel · Windows: ต้องเปิด WSL 2)
- ติดตั้งแล้วเปิดโปรแกรม Docker Desktop ค้างไว้ (ต้องรันอยู่ daemon ถึงทำงาน)
- Windows: ถ้ายังไม่มี ให้เปิด WSL 2 ก่อน (
wsl --installใน PowerShell แล้วรีสตาร์ท)
Linux — ติดตั้ง Docker Engine
# วิธีเร็วสุด: สคริปต์ทางการของ Docker
curl -fsSL https://get.docker.com | sh
# (แนะนำ) ให้ user ปัจจุบันรัน docker ได้โดยไม่ต้อง sudo
sudo usermod -aG docker $USER
# ** ออกจากระบบแล้วล็อกอินใหม่ ให้ group มีผล **
# เปิดให้ Docker start อัตโนมัติตอนบูต
sudo systemctl enable --now dockerยืนยันว่าติดตั้งสำเร็จ
docker version # เห็นทั้ง Client และ Server (daemon) = พร้อม
docker run hello-world # ดึง image ทดสอบมารัน — เห็นข้อความต้อนรับ = สำเร็จ!
# ลองรันเว็บเซิร์ฟเวอร์จริง แล้วเปิด http://localhost:8080
docker run -d -p 8080:80 --name web nginx
docker ps # เห็น container "web" สถานะ Up
docker rm -f web # เก็บกวาดเมื่อเสร็จสรุป Key Takeaways
- Mac/Windows ใช้ Docker Desktop (ต้องเปิดโปรแกรมค้างไว้) · Linux ใช้ Docker Engine
- ยืนยันด้วย docker run hello-world → เห็นข้อความต้อนรับ = สำเร็จ
- error "cannot connect to daemon" = daemon ไม่รัน
คำถามที่พบบ่อย
ติดตั้งแล้วรัน docker ต้องใส่ sudo ตลอด แก้ยังไง
บน Linux เพิ่ม user เข้ากลุ่ม docker: sudo usermod -aG docker $USER แล้ว logout/login — แต่รู้ไว้ว่าสมาชิกกลุ่ม docker เทียบเท่า root ของเครื่อง (mount อะไรก็ได้) จึงให้เฉพาะคนที่ควรได้ ส่วน macOS/Windows ใช้ Docker Desktop ไม่เจอปัญหานี้
เช็คยังไงว่าติดตั้งสำเร็จใช้งานได้จริง
สามคำสั่งเรียงกัน: docker version (client+daemon ต้องขึ้นครบคู่), docker run hello-world (ทดสอบ pull+run ครบวงจร), docker ps (คุยกับ daemon ได้) — ถ้า version ขึ้นแต่ run ไม่ได้ มักเป็น daemon ไม่ได้รันหรือสิทธิ์กลุ่มยังไม่มา

