ติดตั้ง Docker บน Ubuntu/Debian

Docker คือเครื่องมือสำหรับรัน Application ในรูปแบบ Container ที่ช่วยให้ติดตั้ง ย้าย และจัดการ Software ได้ง่ายขึ้นมาก บทความนี้จะอธิบายขั้นตอนการติดตั้ง Docker Engine บน Ubuntu และ Debian แบบครบถ้วน

ข้อกำหนดเบื้องต้น

ก่อนติดตั้ง ตรวจสอบให้แน่ใจว่าระบบของคุณเป็น:

  • Ubuntu 20.04, 22.04, 24.04 หรือใหม่กว่า
  • Debian 11 (Bullseye), 12 (Bookworm) หรือใหม่กว่า
  • มีสิทธิ์ sudo หรือเป็น root
  • เชื่อมต่ออินเทอร์เน็ตได้

ขั้นที่ 1 — ลบ Docker เวอร์ชันเก่า (ถ้ามี)

หากเคยติดตั้ง Docker เวอร์ชันเก่าหรือ Package ที่ขัดแย้งไว้ก่อน ให้ลบออกก่อนเพื่อป้องกันปัญหา:

sudo apt remove docker docker-engine docker.io containerd runc

ไม่ต้องกังวลหาก apt แจ้งว่าไม่พบ Package เหล่านี้ ถือว่าผ่านได้เลย

ขั้นที่ 2 — อัปเดตระบบและติดตั้ง Package ที่จำเป็น

sudo apt update
sudo apt install -y ca-certificates curl gnupg

ขั้นที่ 3 — เพิ่ม Docker GPG Key และ Repository

เพิ่ม Official GPG Key ของ Docker เพื่อความปลอดภัยในการดาวน์โหลด:

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

สำหรับ Debian ให้เปลี่ยน ubuntu เป็น debian ในบรรทัดที่ 2:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

จากนั้นเพิ่ม Docker Repository เข้าในระบบ:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

ขั้นที่ 4 — ติดตั้ง Docker Engine

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

คำสั่งนี้จะติดตั้ง Package ที่จำเป็นทั้งหมด ได้แก่:

  • docker-ce — Docker Engine ตัวหลัก
  • docker-ce-cli — Docker Command Line Interface
  • containerd.io — Container Runtime
  • docker-buildx-plugin — Plugin สำหรับ Build Image
  • docker-compose-plugin — Plugin สำหรับใช้ Docker Compose

ขั้นที่ 5 — ตรวจสอบการติดตั้ง

ทดสอบว่า Docker ทำงานได้ถูกต้องด้วยคำสั่ง Hello World:

sudo docker run hello-world

ถ้าติดตั้งสำเร็จ Docker จะแสดงข้อความต้อนรับ “Hello from Docker!” และอธิบายขั้นตอนที่เกิดขึ้นภายใน

ตรวจสอบเวอร์ชันที่ติดตั้ง:

docker --version
docker compose version

ขั้นที่ 6 — ใช้ Docker โดยไม่ต้องพิมพ์ sudo (แนะนำ)

โดยค่าเริ่มต้น คำสั่ง Docker ต้องใช้ sudo ทุกครั้ง เพื่อความสะดวกสามารถเพิ่ม User ของคุณเข้ากลุ่ม docker ได้:

sudo usermod -aG docker $USER

จากนั้น Log out และ Log in ใหม่ หรือรันคำสั่งด้านล่างเพื่อให้การเปลี่ยนแปลงมีผลทันที:

newgrp docker

ทดสอบอีกครั้งโดยไม่ใช้ sudo:

docker run hello-world

ขั้นที่ 7 — ตั้งค่าให้ Docker เริ่มทำงานอัตโนมัติ

ให้ Docker Service เริ่มต้นอัตโนมัติเมื่อ Server บูต:

sudo systemctl enable docker
sudo systemctl start docker

ตรวจสอบสถานะ Service:

sudo systemctl status docker

ถ้าระบบแสดง Active: active (running) แสดงว่า Docker พร้อมใช้งานแล้ว

ปัญหาที่พบบ่อย

Permission denied เมื่อรัน Docker

หากได้รับ Error permission denied while trying to connect to the Docker daemon socket ให้ตรวจสอบว่าได้เพิ่ม User เข้ากลุ่ม docker แล้วและ Log out/in ใหม่แล้วหรือยัง

Cannot connect to the Docker daemon

ถ้า Docker daemon ยังไม่ได้รัน ให้สั่ง:

sudo systemctl start docker

Package docker-ce ไม่พบ

ตรวจสอบว่าได้เพิ่ม Docker Repository ในขั้นที่ 3 เรียบร้อยแล้ว และลอง sudo apt update อีกครั้งก่อนติดตั้ง

สรุป

เมื่อติดตั้งสำเร็จ คุณก็พร้อมใช้งาน Docker บนเซิร์ฟเวอร์ Ubuntu/Debian แล้ว ขั้นตอนถัดไปที่แนะนำคือทำความเข้าใจ Docker Commands พื้นฐาน และ การเขียน Dockerfile เพื่อสร้าง Container ของตัวเองได้