คำตอบสั้น ๆ: ติดตั้ง Docker Engine และ Docker Compose จาก Repository ทางการของ Docker บน Ubuntu พร้อมรันคอนเทนเนอร์แรกและเข้าใจเรื่อง Firewall ที่ต้องระวัง
คู่มือนี้อธิบาย Docker Compose ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
Docker ช่วยให้รันแอปพลิเคชันในคอนเทนเนอร์ที่แยกจากระบบหลัก ทำให้ติดตั้ง ย้าย และอัปเดตบริการต่าง ๆ ได้ง่าย ส่วน Docker Compose ใช้กำหนดหลายคอนเทนเนอร์ในไฟล์เดียว เช่น เว็บแอปคู่กับฐานข้อมูล แล้วสั่งเปิดหรือปิดพร้อมกันด้วยคำสั่งเดียว หากยังไม่แน่ใจว่าควรใช้ Docker หรือ Kubernetes อ่านเพิ่มได้ที่ 5 ความแตกต่างสำคัญระหว่าง Docker และ Kubernetes
คู่มือนี้ติดตั้งจาก Repository ทางการของ Docker ซึ่งได้เวอร์ชันใหม่กว่าแพ็กเกจ docker.io ของ Ubuntu และได้ Docker Compose เวอร์ชัน 2 มาในรูปแบบ Plugin ใช้งานด้วยคำสั่ง docker compose (มีช่องว่าง ไม่ใช่ขีด)
สิ่งที่ต้องเตรียม
- เซิร์ฟเวอร์ Ubuntu 22.04 หรือ 24.04 แบบ 64-bit
- ผู้ใช้ที่มีสิทธิ์
sudo - พื้นที่ดิสก์ว่างพอสำหรับ Image และข้อมูลของคอนเทนเนอร์ (Image หนึ่งตัวมักมีขนาดหลายร้อย MB)
ขั้นตอนที่ 1: ถอนแพ็กเกจเก่าที่อาจชนกัน
หากเคยติดตั้ง Docker จาก Repository ของ Ubuntu มาก่อน ให้ถอนออกก่อน คำสั่งนี้ไม่ลบข้อมูลใน /var/lib/docker ถ้าไม่เคยติดตั้งจะแสดงว่าไม่พบแพ็กเกจ ซึ่งไม่เป็นปัญหา
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove -y $pkg; doneขั้นตอนที่ 2: เพิ่ม Repository ทางการของ Docker
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จากนั้นเพิ่มแหล่งแพ็กเกจ คำสั่งนี้อ่านชื่อรุ่นของ Ubuntu (jammy หรือ noble) และสถาปัตยกรรมของเครื่องให้อัตโนมัติ
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get updateในผลลัพธ์ของ apt-get update ควรเห็นบรรทัดที่มี download.docker.com โดยไม่มี Error เรื่อง GPG
ขั้นตอนที่ 3: ติดตั้ง Docker Engine และ Compose Plugin
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginบน Ubuntu Service ของ Docker จะเริ่มทำงานและเปิดอัตโนมัติเมื่อบูตเครื่องทันที ตรวจสอบได้ด้วย
sudo systemctl status docker
sudo docker run hello-worldคำสั่งที่สองจะดาวน์โหลด Image ทดสอบและพิมพ์ข้อความ Hello from Docker! แสดงว่า Docker Engine ทำงานถูกต้อง
ขั้นตอนที่ 4: ใช้งาน Docker โดยไม่ต้องพิมพ์ sudo (ทางเลือก)
sudo usermod -aG docker $USERออกจาก SSH แล้วเข้าใหม่ให้สิทธิ์กลุ่มมีผล จากนั้นทดสอบด้วย docker ps
หมายเหตุ: ผู้ใช้ที่อยู่ในกลุ่ม
dockerมีสิทธิ์เทียบเท่า root บนเครื่อง เพราะสามารถเมานต์ไฟล์ระบบเข้าไปในคอนเทนเนอร์ได้ ควรเพิ่มเฉพาะผู้ใช้ที่ไว้วางใจเท่านั้น