Docker สำหรับ SysAdmin คู่มือฉบับสมบูรณ์ 2026

Docker สำหรับ SysAdmin คู่มือฉบับสมบูรณ์ 2026
โดย อ.บอม | SiamCafe IT Blog | อัพเดต กุมภาพันธ์ 2026

Docker เป็นเทคโนโลยี Container ที่เปลี่ยนวิธีการ Deploy และจัดการแอปพลิเคชันอย่างสิ้นเชิง สำหรับ SysAdmin ในปี 2026 Docker ไม่ใช่แค่เครื่องมือเสริมอีกต่อไป แต่เป็นทักษะพื้นฐานที่ต้องมี ในคู่มือนี้เราจะอธิบายทุกอย่างตั้งแต่พื้นฐานไปจนถึงการใช้งานจริงใน Production

Docker คืออะไร

Docker เป็นแพลตฟอร์ม Open Source สำหรับสร้าง แจกจ่าย และรัน Container ซึ่ง Container เป็นสภาพแวดล้อมที่แยกจากระบบหลัก (Isolated Environment) บรรจุแอปพลิเคชันพร้อมทุก Dependency ที่จำเป็น ทำให้แอปทำงานได้เหมือนกันทุกที่ ไม่ว่าจะเป็นเครื่อง Developer, Staging Server หรือ Production Server

Docker ใช้เทคโนโลยี Linux Kernel เช่น cgroups และ namespaces ในการแยก Container ออกจากกัน แต่ละ Container แชร์ Kernel เดียวกับ Host ทำให้เบากว่า Virtual Machine มาก Boot ได้ในเวลาเพียงวินาที และใช้ทรัพยากรน้อยกว่า VM หลายเท่า

Docker vs Virtual Machine

คุณสมบัติDocker ContainerVirtual Machine
เวลา Bootวินาทีนาที
ขนาดMB (10-500MB)GB (2-20GB)
ใช้ RAMเฉพาะที่แอปต้องการต้องจองไว้ล่วงหน้า
IsolationProcess LevelFull OS Level
Overheadต่ำมากสูง (Hypervisor)
Portabilityสูงมากปานกลาง
เหมาะกับMicroservices, CI/CDLegacy App, Full OS

Docker ไม่ได้มาแทนที่ VM แต่ใช้ร่วมกันได้ดี หลายองค์กรรัน Docker บน VM อีกชั้นหนึ่งเพื่อความยืดหยุ่น เช่น รัน Docker บน Proxmox VM สำหรับผู้สนใจ Virtualization สามารถศึกษาเพิ่มเติมที่ Proxmox vs ESXi เปรียบเทียบ

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

ขั้นตอนติดตั้ง Docker Engine บน Ubuntu 22.04/24.04:

# อัพเดตและติดตั้ง Dependencies
sudo apt update
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

# เพิ่ม Repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

# ติดตั้ง Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# เพิ่ม User เข้ากลุ่ม docker (ไม่ต้อง sudo)
sudo usermod -aG docker $USER

สำหรับ CentOS/RHEL ใช้ yum แทน apt และเพิ่ม repo จาก Docker official สำหรับ Windows และ Mac ให้ดาวน์โหลด Docker Desktop จากเว็บไซต์ Docker

คำสั่ง Docker ที่ SysAdmin ต้องรู้

จัดการ Container

# รัน Container ใหม่
docker run -d --name myapp -p 8080:80 nginx

# ดู Container ที่กำลังทำงาน
docker ps

# ดู Container ทั้งหมด (รวมที่หยุด)
docker ps -a

# หยุด Container
docker stop myapp

# ลบ Container
docker rm myapp

# ดู Log
docker logs -f myapp

# เข้าไปใน Container
docker exec -it myapp /bin/bash

จัดการ Image

# ดาวน์โหลด Image
docker pull ubuntu:22.04

# ดู Image ที่มี
docker images

# ลบ Image
docker rmi ubuntu:22.04

# ลบ Image ที่ไม่ใช้
docker image prune -a

ตรวจสอบทรัพยากร

# ดู CPU/Memory ที่ Container ใช้
docker stats

# ดูรายละเอียด Container
docker inspect myapp

# ดู Disk ที่ Docker ใช้
docker system df

เขียน Dockerfile สำหรับแอปจริง

Dockerfile คือไฟล์ที่กำหนดวิธีสร้าง Docker Image ตัวอย่าง Dockerfile สำหรับ Node.js Application:

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
USER node
CMD ["node", "server.js"]

Best Practices สำหรับเขียน Dockerfile:

Docker Compose สำหรับหลาย Container

Docker Compose ช่วยจัดการแอปที่มีหลาย Container พร้อมกัน ตัวอย่าง docker-compose.yml สำหรับ WordPress:

version: '3.8'
services:
  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wp
      WORDPRESS_DB_PASSWORD: secret123
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp_data:/var/www/html
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: mariadb:10.11
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wp
      MYSQL_PASSWORD: secret123
    volumes:
      - db_data:/var/lib/mysql
    restart: unless-stopped

volumes:
  wp_data:
  db_data:

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

docker compose up -d        # รัน Stack
docker compose down          # หยุดและลบ Stack
docker compose logs -f       # ดู Log
docker compose ps            # ดูสถานะ
docker compose pull          # อัพเดต Image
docker compose restart       # Restart ทั้ง Stack

Docker Networking

Docker มี Network Driver หลายแบบ:

แนะนำให้สร้าง Custom Bridge Network แทนการใช้ Default Bridge เพราะ Custom Network รองรับ DNS Resolution ระหว่าง Container ทำให้อ้างถึงกันด้วยชื่อได้

Docker Volumes จัดการข้อมูลถาวร

Container เป็น Ephemeral คือเมื่อลบแล้วข้อมูลข้างในจะหายไป Docker Volumes ช่วยเก็บข้อมูลถาวรนอก Container มี 3 แบบ:

สำหรับ Production ควรใช้ Named Volume และ Backup ข้อมูลสม่ำเสมอ วิธี Backup Docker Volume ง่ายที่สุดคือ:

docker run --rm -v mydata:/source -v /backup:/backup alpine tar czf /backup/mydata-$(date +%Y%m%d).tar.gz -C /source .

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

Docker Security เป็นเรื่องสำคัญที่ SysAdmin ต้องใส่ใจ:

ใช้ Docker ใน Production

สำหรับ Production Environment มีสิ่งที่ต้องพิจารณาเพิ่มเติม:

Logging

ตั้ง Log Driver ให้เหมาะสม เช่น json-file พร้อม max-size และ max-file เพื่อป้องกัน Disk เต็ม หรือใช้ Fluentd/Loki สำหรับ Centralized Logging

Monitoring

ใช้ cAdvisor ร่วมกับ Prometheus และ Grafana ในการ Monitor Container Performance ทั้ง CPU Memory Network และ Disk I/O

Backup Strategy

สร้าง Backup Script สำหรับ Volume ทั้งหมด ทำ Backup ไปยัง NAS หรือ Cloud Storage อย่างน้อยวันละครั้ง ทดสอบ Restore สม่ำเสมอ

Update Strategy

ใช้ Watchtower หรือ Diun สำหรับแจ้งเตือนเมื่อมี Image ใหม่ ทดสอบ Image ใหม่ใน Staging ก่อน Deploy ไป Production ใช้ Docker Image Tag เฉพาะ (เช่น nginx:1.25.3) แทน latest

สำหรับผู้ที่สนใจการเทรด Forex สามารถใช้ Docker รัน EA หรือ Trading Bot บน VPS ได้อย่างมีประสิทธิภาพ ศึกษาเพิ่มเติมเกี่ยวกับการเทรดได้ที่ iCafeForex สอนเทรด Forex ฟรี

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

Docker Desktop ฟรีหรือไม่?

Docker Desktop ฟรีสำหรับบุคคล การศึกษา และธุรกิจขนาดเล็ก (พนักงานน้อยกว่า 250 คน รายได้น้อยกว่า 10 ล้านดอลลาร์ต่อปี) องค์กรใหญ่ต้องซื้อ Subscription ส่วน Docker Engine บน Linux ฟรีทั้งหมด

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

Podman เป็นทางเลือกแทน Docker ที่ไม่ต้องใช้ Daemon รันด้วย Rootless ได้โดย Default คำสั่งเกือบเหมือน Docker ทุกประการ เหมาะสำหรับผู้ที่ต้องการ Security ที่สูงกว่า

ควรใช้ Docker Swarm หรือ Kubernetes?

Docker Swarm ง่ายกว่ามาก ติดตั้งและจัดการง่าย เหมาะสำหรับ SME ที่มี Container ไม่เกิน 50 ตัว Kubernetes ซับซ้อนกว่าแต่ทรงพลังกว่า เหมาะสำหรับองค์กรขนาดใหญ่ที่ต้องการ Auto-scaling

สรุป

Docker เป็นเครื่องมือที่ SysAdmin ในปี 2026 ต้องเชี่ยวชาญ ด้วยความสามารถในการ Deploy แอปอย่างรวดเร็ว จัดการ Environment ให้สม่ำเสมอ และประหยัดทรัพยากร Docker จะช่วยให้การทำงานของคุณมีประสิทธิภาพมากขึ้น เริ่มต้นจากการติดตั้ง Docker รัน Container แรก แล้วค่อยเรียนรู้ Dockerfile และ Compose ทีละขั้น ภายในไม่กี่สัปดาห์คุณจะใช้ Docker ได้อย่างมั่นใจ

📖 บทความที่เกี่ยวข้อง

Docker เบื้องต้นสำหรับ SysAdmin คู่มือฉบับสมบูรณ์ 2026อ่านบทความ → A/B Testing ML Docker Container Deploy — คู่มือฉบับสมบูรณ์ 2026อ่านบทความ → ACME Protocol Docker Container Deploy — คู่มือฉบับสมบูรณ์ 2026อ่านบทความ → Airbyte ETL Docker Container Deploy — คู่มือฉบับสมบูรณ์ 2026อ่านบทความ → Airflow DAG Design Docker Container Deploy — คู่มือฉบับสมบูรณ์ 2026อ่านบทความ →

📚 ดูบทความทั้งหมด →

🎬 วิดีโอแนะนำ