ติดตั้ง WordPress ด้วย Docker บน Cloud VPS ของ de.co.th

Docker เปลี่ยนวิธีที่นักพัฒนาและ System Admin จัดการ WordPress อย่างสิ้นเชิง แทนที่จะติดตั้งตรงบนเซิร์ฟเวอร์แบบเดิม Docker ช่วยห่อ WordPress และ Dependencies ทั้งหมดไว้ใน Container ที่พร้อมรัน ย้ายได้ ดูแลง่าย และ Scale ได้อย่างยืดหยุ่น บน Cloud VPS ของ de.co.th ที่รองรับ Docker เต็มรูปแบบ คุณสามารถมี WordPress Production-Ready ได้ภายในไม่กี่นาที

ทำไมต้องใช้ Docker ติดตั้ง WordPress?

เปรียบเทียบข้อดีของ Docker กับการติดตั้งแบบ Traditional:

  • Isolation — WordPress แต่ละ Site อยู่ใน Container ของตัวเอง ไม่กระทบกัน
  • Portability — ย้าย Server ได้ง่าย แค่ Copy docker-compose.yml และ Volume ไป
  • Version Control — ระบุ PHP Version, MySQL Version ในไฟล์เดียว ไม่มีความสับสน
  • Easy Updates — Update WordPress, PHP หรือ Plugins โดยไม่ส่งผลกระทบต่อ System หลัก
  • Multi-Site — รัน WordPress หลาย Site บนเซิร์ฟเวอร์เดียว แต่ละ Site เป็น Container ของตัวเอง

สิ่งที่จำเป็นต้องมีก่อนเริ่มต้น

  • Docker และ Docker Compose ติดตั้งอยู่ (Linux Server หรือ Local Machine)
  • ความรู้พื้นฐาน Docker command
  • Text Editor สำหรับแก้ไขไฟล์

ขั้นตอนที่ 1: เตรียม Directory

สร้างโฟลเดอร์สำหรับ WordPress Project:

mkdir wordpress-docker
cd wordpress-docker

ขั้นตอนที่ 2: สร้าง docker-compose.yml

สร้างไฟล์ docker-compose.yml เพื่อกำหนด Services (WordPress + MySQL):

version: '3.8'

services:
  mysql:
    image: mysql:8.0
    container_name: wp_mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: your_db_password
    volumes:
      - ./mysql_data:/var/lib/mysql
    networks:
      - wp_network

  wordpress:
    image: wordpress:latest
    container_name: wp_app
    restart: always
    depends_on:
      - mysql
    ports:
      - "80:80"
    environment:
      WORDPRESS_DB_HOST: mysql:3306
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: your_db_password
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wordpress_data:/var/www/html
    networks:
      - wp_network

volumes:
  mysql_data:
  wordpress_data:

networks:
  wp_network:
    driver: bridge

ขั้นตอนที่ 3: รัน WordPress

รันคำสั่ง Docker Compose เพื่อเริ่มต้น WordPress:

docker compose up -d

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

docker compose ps

ขั้นตอนที่ 4: เข้าใช้งาน WordPress

เปิด Browser และไปที่ http://localhost หรือ http://your_server_ip จะเห็นหน้า WordPress Installation Wizard

ความแตกต่างระหว่าง Traditional Installation และ Docker

รายการTraditionalDocker
การติดตั้งซับซ้อน ต้อง Manualง่าย ใช้ YAML ไฟล์เดียว
ความแยก (Isolation)ไม่มีทั้งหมด Isolated
Update / Upgradeส่งผลกระทบต่อ Systemปลอดภัย อยู่ใน Container
Multi-Siteยุ่งยาก ต้อง Manual Setupง่าย แค่เพิ่ม Service ใน YAML
Backupต้อง SSH และ Database ToolsCopy Volume ได้อย่างง่าย
Portabilityยาก ข้อมูล Tied to Serverง่ายมาก ย้าย Server ได้เลย

ข้อสังเกตสำคัญ

  • ใช้ Strong Password สำหรับ MYSQL_ROOT_PASSWORD และ MYSQL_PASSWORD
  • ไม่ควร Push docker-compose.yml ไปยัง Git ถ้ามี Password ที่ใช้งานจริง (ใช้ .env File แทน)
  • เมื่อรัน docker compose up -d ครั้งแรก MySQL อาจต้องใช้เวลาสักครู่ในการ Initialize
  • Volume mysql_data และ wordpress_data จะเก็บข้อมูลถาวร แม้ Container หยุด

คำสั่ง Docker Compose ที่มีประโยชน์

# ดู Logs ของทั้งหมด
docker compose logs -f

# ดู Logs เฉพาะ WordPress
docker compose logs -f wordpress

# หยุด Services ทั้งหมด
docker compose stop

# เริ่มต้อใหม่
docker compose start

# ลบ Containers แต่เก็บ Data
docker compose down

# ลบทุกอย่างรวม Volume (ระวัง!)
docker compose down -v

สรุป

Docker ให้วิธีที่เรียบง่าย ปลอดภัย และ Production-Ready ในการรัน WordPress บน Cloud VPS ใช้เวลาแค่สองสามนาที และคุณจะมี WordPress ที่พร้อมใช้งาน บ้างครั้งเซตอัป Automation อื่นๆ จะทำให้ Development สะดวกขึ้นมาก