ติดตั้ง Docker บน VPS Ubuntu

ติดตั้งและใช้งาน Docker บน VPS Ubuntu เบื้องต้น

Docker คือเครื่องมือ Containerization ที่นักพัฒนาและ DevOps ทั่วโลกใช้กันอย่างแพร่หลาย การรัน Docker บน VPS ช่วยให้คุณ Deploy Application ได้รวดเร็ว ขยายระบบง่าย และจัดการ Environment ได้อย่างมีประสิทธิภาพ คู่มือนี้จะพาคุณตั้งแต่ความรู้พื้นฐานจนถึงการใช้งานจริงบน VPS Ubuntu

สารบัญ

  1. Docker คืออะไร
  2. ทำไมต้องใช้ Docker บน VPS
  3. ความต้องการของระบบ
  4. ขั้นตอนติดตั้ง Docker บน Ubuntu
  5. คำสั่ง Docker พื้นฐาน
  6. Docker Compose คืออะไรและวิธีใช้
  7. ตัวอย่าง Use Case จริง
  8. ความปลอดภัย Docker บน VPS
  9. คำถามที่พบบ่อย (FAQ)
  10. สรุป

Docker คืออะไร

Docker คือ Platform สำหรับสร้างและรัน Container ซึ่งเป็น Package ที่รวม Application, Library, และ Configuration ทั้งหมดไว้ด้วยกัน ทำให้ Application รันได้เหมือนกันทุก Environment ไม่ว่าจะเป็น Local, Staging, หรือ Production

หัวใจสำคัญของ Docker มี 3 อย่าง:

💡 เปรียบเปรย: Image เหมือน Class ในโปรแกรมมิ่ง Container เหมือน Object ที่ถูก Instantiate มาจาก Class นั้น

ทำไมต้องใช้ Docker บน VPS

การรัน Application บน VPS แบบดั้งเดิมมีปัญหา เช่น Dependency Conflict, ยาก Scale, และยากในการ Migrate Docker แก้ปัญหาเหล่านี้ได้ทั้งหมด:

ปัญหาแบบดั้งเดิมDocker แก้ได้อย่างไร
Dependency conflict ระหว่าง Appแต่ละ Container มี Environment แยกกัน 100%
Deploy ยุ่งยาก ต้องตั้งค่าเยอะDeploy ด้วย docker run หรือ docker compose up
Scale ยาก ต้องติดตั้งใหม่Spin up Container ใหม่ได้ใน 10 วินาที
Dev/Prod แตกต่างกัน (It works on my machine)Environment เหมือนกัน 100% ทุก Stage
Rollback ยากSwitch Image version ได้ทันที

ความต้องการของระบบ

ก่อนติดตั้ง Docker ตรวจสอบสเปค VPS ของคุณให้เพียงพอ:

Componentขั้นต่ำแนะนำ
OSUbuntu 20.04 LTSUbuntu 22.04 LTS หรือใหม่กว่า
RAM1 GB2 GB ขึ้นไป
Storage (SSD)10 GB ว่าง20 GB ขึ้นไป
CPU1 vCore2 vCore ขึ้นไป
AccessSSH Root/SudoUser ที่มี sudo
⚠️ หมายเหตุ: VPS AsiaGB ใช้ SSD Storage ทุกแพ็กเกจ เหมาะสำหรับรัน Docker ได้ดีเพราะ I/O เร็ว

ขั้นตอนติดตั้ง Docker บน Ubuntu

วิธีที่ 1: ติดตั้งผ่าน apt (แนะนำ — ง่ายที่สุด)

# 1. อัปเดต package list
sudo apt update

# 2. ติดตั้ง Docker
sudo apt install -y docker.io

# 3. เปิดใช้งานและ Start Docker
sudo systemctl enable --now docker

# 4. ตรวจสอบว่า Docker ทำงาน
sudo systemctl status docker

# 5. เพิ่ม user ปัจจุบันเข้า docker group (ไม่ต้องใช้ sudo ทุกครั้ง)
sudo usermod -aG docker $USER

# 6. Logout แล้ว Login ใหม่ จากนั้นทดสอบ
docker run hello-world

วิธีที่ 2: ติดตั้ง Docker CE (Community Edition) เวอร์ชันล่าสุด

# ติดตั้ง dependencies
sudo apt install -y ca-certificates curl gnupg

# เพิ่ม Docker GPG key
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

# เพิ่ม 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

# ติดตั้ง Docker CE
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
✅ ตรวจสอบเวอร์ชัน: หลังติดตั้งรัน docker --version และ docker compose version เพื่อยืนยัน

คำสั่ง Docker พื้นฐาน

คำสั่งที่ใช้บ่อยที่สุดใน Docker:

คำสั่งความหมายตัวอย่าง
docker pullดาวน์โหลด Image จาก Registrydocker pull nginx:latest
docker runสร้างและรัน Container จาก Imagedocker run -d -p 80:80 nginx
docker psดู Container ที่กำลังรันdocker ps -a (ดูทั้งหมด)
docker stopหยุด Containerdocker stop my-container
docker rmลบ Containerdocker rm my-container
docker imagesดู Image ทั้งหมดdocker images
docker rmiลบ Imagedocker rmi nginx:latest
docker execรันคำสั่งใน Container ที่รันอยู่docker exec -it my-nginx bash
docker logsดู Log ของ Containerdocker logs -f my-container
docker inspectดูข้อมูลละเอียดของ Containerdocker inspect my-container

ตัวอย่างจริง: รัน Nginx Web Server

# รัน Nginx บน port 8080
docker run -d --name my-nginx -p 8080:80 nginx:alpine

# ทดสอบ
curl http://localhost:8080

# ดู logs
docker logs my-nginx

# หยุดและลบ
docker stop my-nginx && docker rm my-nginx

Docker Compose คืออะไรและวิธีใช้

Docker Compose เป็นเครื่องมือสำหรับจัดการหลาย Container พร้อมกัน โดยกำหนดทุกอย่างในไฟล์ docker-compose.yml เดียว

ตัวอย่าง: WordPress + MySQL + Redis

version: '3.8'
services:
  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: wordpress
    volumes:
      - db_data:/var/lib/mysql

  wordpress:
    image: wordpress:latest
    restart: always
    depends_on:
      - db
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: secret

  redis:
    image: redis:alpine
    restart: always

volumes:
  db_data:

รันด้วย docker compose up -d และหยุดด้วย docker compose down

ตัวอย่าง Use Case จริง

Docker บน VPS เหมาะกับงานหลากหลายประเภท:

💡 เคล็ดลับ: VPS AsiaGB ไทย (Bangkok) Uptime 99% เหมาะสำหรับรัน Docker Web Service ที่ต้องการ Latency ต่ำสำหรับผู้ใช้ในไทย

ความปลอดภัย Docker บน VPS

Docker ช่วยเพิ่มความปลอดภัย แต่มีสิ่งที่ต้องระวัง:

# จำกัด Memory และ CPU
docker run -d --name my-app --memory="512m" --cpus="0.5" my-image

# แก้ปัญหา Docker bypass ufw
# แก้ /etc/default/ufw: DEFAULT_FORWARD_POLICY="ACCEPT"
sudo ufw reload

คำถามที่พบบ่อย (FAQ)

Docker ต้องใช้ VPS สเปกขนาดไหน?

สำหรับ Docker เบื้องต้นแนะนำ RAM 1 GB และ CPU 1 Core ขึ้นไป ถ้ารัน Container หลายตัวควรใช้ RAM 2 GB ขึ้นไป

Docker กับ Virtual Machine ต่างกันอย่างไร?

Docker ใช้ Container ซึ่งแชร์ Kernel กับ Host ทำให้เบากว่า VM มาก VM ต้องรัน OS เต็มตัวจึงกินทรัพยากรมากกว่า Docker 10–20 เท่า

Docker Compose ต่างจาก Docker ปกติอย่างไร?

Docker Compose ช่วยจัดการหลาย Container พร้อมกันผ่านไฟล์ docker-compose.yml เหมาะสำหรับ Application ที่มีหลาย Service เช่น Web + Database + Cache

ติดตั้ง Docker บน Ubuntu ต้องใช้คำสั่งอะไร?

ใช้คำสั่ง: sudo apt update && sudo apt install -y docker.io && sudo systemctl enable --now docker จากนั้นเพิ่มตัวเองเข้า docker group ด้วย sudo usermod -aG docker $USER

Docker Image กับ Docker Container ต่างกันอย่างไร?

Docker Image คือ Template หรือ Blueprint ที่ใช้สร้าง Container ส่วน Docker Container คือ Instance ที่รันจาก Image นั้น Image 1 อันสามารถสร้าง Container ได้หลายตัว

สรุป

Docker บน VPS Ubuntu เปิดโลกการ Deploy Application ที่รวดเร็ว ยืดหยุ่น และจัดการได้ง่าย ด้วยขั้นตอนง่ายๆ เพียง apt install docker.io คุณก็พร้อมรัน Container ได้ทันที

สิ่งที่คุณได้เรียนรู้วันนี้: ติดตั้ง Docker, คำสั่งพื้นฐาน, Docker Compose สำหรับ Multi-Container, Use Case จริง และแนวทางความปลอดภัย

ต้องการ VPS สำหรับรัน Docker?

VPS AsiaGB ไทย — SSD, Uptime 99%, ควบคุมด้วย DirectAdmin ราคาเริ่ม 500 บาท/เดือน

ดูแพ็กเกจ VPS ไทย