ข้ามไปยังเนื้อหา

ติดตั้งและตรวจสอบ Docker

Docker มีสองแพ็กเกจหลัก ขึ้นอยู่กับระบบปฏิบัติการของคุณ:

  • Docker Desktop — application GUI ที่รวม Docker Engine, Docker Compose, Kubernetes แบบ node เดียว และ dashboard สำหรับ macOS และ Windows
  • Docker Engine — daemon บรรทัดคำสั่งสำหรับ Linux ไม่มี GUI แต่เบากว่าและเหมาะสำหรับ server และ CI

ดาวน์โหลด Docker Desktop จาก docs.docker.com/desktop/install/mac-install เลือก chip ของคุณ (Apple Silicon หรือ Intel) จากนั้นลาก Docker.app ไปที่ Applications แล้วเปิดใช้งาน

เมื่อ whale icon ปรากฏในแถบเมนูและแสดงว่า “Docker Desktop is running” daemon ก็พร้อมใช้งานแล้ว

ดาวน์โหลด Docker Desktop installer จาก docs.docker.com/desktop/install/windows-install Docker Desktop บน Windows ใช้ WSL 2 (Windows Subsystem for Linux) เป็น backend ซึ่ง installer จะตั้งค่าให้โดยอัตโนมัติหากยังไม่ได้เปิดใช้งาน

รีสตาร์ทเมื่อได้รับแจ้ง จากนั้น Docker Desktop จะเริ่มทำงานในระบบถาดแจ้งเตือน

บน Linux คุณจะติดตั้ง Docker Engine โดยตรง วิธีที่แนะนำคือใช้สคริปต์ความสะดวกของ Docker หรือ repository ของแพ็กเกจ manager ของ distro คุณ

Terminal window
# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to apt sources
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install Docker Engine
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

เพื่อให้รัน Docker โดยไม่ต้องใช้ sudo ให้เพิ่ม user ของคุณในกลุ่ม docker:

Terminal window
sudo usermod -aG docker $USER
newgrp docker

รันสองคำสั่งนี้เพื่อยืนยันว่า Docker client และ daemon ทั้งสองทำงานอยู่:

Terminal window
docker version
docker run hello-world

docker version แสดงเวอร์ชันของทั้ง client และ server (daemon) หาก server section หายไปแสดงว่า daemon ไม่ได้ทำงานอยู่

docker run hello-world ดึง image ขนาดเล็กจาก Docker Hub รันใน container พิมพ์ข้อความยืนยัน แล้วออก เป็นการยืนยัน end-to-end ตั้งแต่ registry ไปจนถึง runtime

Hello from Docker!
This message shows that your installation appears to be working correctly.

ลองรันคำสั่งเหล่านี้ใน playground ด้านล่าง:

docker version
docker run hello-world
ตัวเลือกBenefitCost
Docker Desktopติดตั้งง่าย มี GUI พร้อม Compose และ Kubernetes แบบ node เดียวในตัวใช้ทรัพยากรเครื่องมากกว่า และมี license แบบเสียเงินสำหรับองค์กรขนาดใหญ่
Docker Engineเบา เหมาะกับ server และ CI ไม่มีค่า licenseไม่มี GUI ต้องจัดการทุกอย่างผ่าน CLI เอง
  • รัน docker run โดยไม่เช็คก่อนว่า daemon ทำงานอยู่ (ส่วน Server หายไปใน docker version) แล้วเจอ error ที่ดูสับสน
  • ติดตั้ง Docker Engine บน Linux แล้วลืมเพิ่ม user เข้ากลุ่ม docker ทำให้ต้องใช้ sudo ทุกคำสั่งหรือเจอ permission denied ที่ /var/run/docker.sock
  • เข้าใจผิดว่า Docker Desktop จำเป็นสำหรับทุก OS ทั้งที่บน Linux ควรใช้ Docker Engine ตรง ๆ เพราะเบากว่า

💡 ตัวอย่างจากของจริง

ทีม infra จำนวนมากรัน Docker Engine ตรง ๆ บน Linux CI runner โดยไม่ใช้ Docker Desktop เพื่อลด overhead และหลีกเลี่ยงค่า license ขณะที่นักพัฒนาบน macOS หรือ Windows ยังใช้ Docker Desktop เพื่อความสะดวกในการพัฒนาบนเครื่อง

ระบบปฏิบัติการใดที่แนะนำให้ติดตั้งด้วย Docker Desktop?
`docker version` แสดงอะไรที่ `docker --version` ไม่แสดง?
คุณรัน `docker version` แล้วเห็นเฉพาะส่วน Client — ไม่มีส่วน Server หมายความว่าอะไร?
การรัน `docker run hello-world` หลังติดตั้ง Docker มีจุดประสงค์อะไร?