Cách Dùng Docker Cho WordPress

Cách Dùng Docker Cho WordPress

Docker hỗ trợ rất tốt cho việc triển khai và phát triển WordPress. Bạn có thể sử dụng Docker để thiết lập một môi trường WordPress nhanh chóng, bao gồm cả cơ sở dữ liệu (MySQL hoặc MariaDB) và các dịch vụ khác (như phpMyAdmin). Đây là cách lý tưởng để phát triển hoặc thử nghiệm WordPress mà không cần cài đặt trực tiếp trên máy tính.

Cài đặt Wordpress trên Docker#

1. Tạo Một Môi Trường WordPress Với Docker Compose#

Docker Compose cho phép bạn cấu hình toàn bộ môi trường trong một file docker-compose.yml. Dưới đây là ví dụ để chạy WordPress với MySQL:

Bước 1: Tạo File docker-compose.yml

  1. Tạo một thư mục cho dự án WordPress (ví dụ: wordpress-docker).
  2. Trong thư mục đó, tạo file docker-compose.yml với nội dung sau:
    version: '3.8'
    
    services:
      wordpress:
        image: wordpress:latest
        ports:
          - "8080:80"
        environment:
          WORDPRESS_DB_HOST: db
          WORDPRESS_DB_USER: root
          WORDPRESS_DB_PASSWORD: root
          WORDPRESS_DB_NAME: wordpress
        volumes:
          - ./wordpress:/var/www/html
    
      db:
        image: mysql:5.7
        environment:
          MYSQL_ROOT_PASSWORD: root
          MYSQL_DATABASE: wordpress
        volumes:
          - db_data:/var/lib/mysql
    
    volumes:
      db_data:

Bước 2: Khởi Chạy Docker Compose

  1. Mở terminal trong thư mục chứa file docker-compose.yml.
  2. Chạy lệnh:
    docker-compose up -d
  3. Sau khi khởi chạy, WordPress sẽ chạy trên địa chỉ: http://localhost:8080.

2. Quản Lý Cơ Sở Dữ Liệu Với phpMyAdmin#

Để quản lý cơ sở dữ liệu dễ dàng hơn, bạn có thể thêm phpMyAdmin vào docker-compose.yml:

Bổ sung phpMyAdmin

Cập nhật file docker-compose.yml:
services:
  wordpress:
    # Cấu hình WordPress như trên...

  db:
    # Cấu hình MySQL như trên...

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - "8081:80"
    environment:
      PMA_HOST: db
      PMA_USER: root
      PMA_PASSWORD: root
Khởi chạy lại Docker Compose:
docker-compose up -d
Bây giờ, bạn có thể truy cập phpMyAdmin tại http://localhost:8081.

3. Lợi Ích Khi Dùng Docker Cho WordPress#

  • Nhanh chóng: Tạo và chạy môi trường WordPress chỉ với một vài lệnh.
  • Nhất quán: Môi trường chạy đồng nhất trên các máy khác nhau.
  • Dễ dàng thử nghiệm: Tạo nhiều phiên bản WordPress để kiểm thử tính năng hoặc plugin mà không làm ảnh hưởng môi trường chính.
  • Di động: Có thể chia sẻ cấu hình docker-compose.yml với đội ngũ phát triển.

4. Mở Rộng Với Các Công Cụ Khác#

  • Redis Cache: Tích hợp Redis để tăng tốc WordPress.
  • ElasticSearch: Kết hợp ElasticSearch để cải thiện tính năng tìm kiếm.
  • Backup Dữ Liệu: Sử dụng Docker volumes để lưu trữ dữ liệu, dễ dàng sao lưu và phục hồi.

Ví Dụ Thực Tế#

  1. Phát Triển Plugin hoặc Theme:
    • Tạo môi trường WordPress nhanh chóng trên Docker.
    • Gắn thư mục plugin hoặc theme của bạn vào container để phát triển.
  2. Kiểm Thử Nhiều Phiên Bản PHP:
    • Thử nghiệm WordPress trên các phiên bản PHP khác nhau (ví dụ, 7.4 và 8.1) bằng cách sử dụng các container độc lập.
  3. Đào Tạo:
    • Thiết lập môi trường WordPress nhanh chóng cho học viên trong các khóa học hoặc hội thảo.
Docker cho WordPress là một công cụ mạnh mẽ và linh hoạt, phù hợp cho cả nhà phát triển và quản trị viên hệ thống. Nếu bạn thường xuyên làm việc với WordPress, hãy thử sử dụng Docker để tăng hiệu quả làm việc.

Data của Wordpress Docker lưu ở đâu?#

Dữ liệu của phpMyAdmin trong môi trường Docker của WordPress không được lưu trực tiếp bởi phpMyAdmin. Thay vào đó, phpMyAdmin là một công cụ quản lý cơ sở dữ liệu và truy cập dữ liệu được lưu trữ trong container của MySQL hoặc MariaDB. Dưới đây là cách kiểm tra và tìm nơi lưu trữ dữ liệu:

1. Dữ liệu MySQL/MariaDB được lưu trữ ở đâu?#

Dữ liệu của MySQL/MariaDB trong Docker thường được lưu ở một trong hai nơi:

a. Trong container MySQL/MariaDB (storage nội bộ)

Khi bạn không cấu hình volume để lưu dữ liệu bên ngoài, MySQL/MariaDB sẽ lưu dữ liệu trong thư mục nội bộ của container. Thư mục mặc định:
/var/lib/mysql
Bạn có thể kiểm tra bằng cách vào container MySQL:
docker exec -it [mysql_container_id] bash
ls /var/lib/mysql

b. Trong volume Docker (storage bên ngoài)

Nếu bạn đã cấu hình volume, dữ liệu sẽ được lưu trong một thư mục trên máy chủ Docker. Volume được định nghĩa trong lệnh docker run hoặc file docker-compose.yml.
  • Kiểm tra volume Docker: Liệt kê volume:
    docker volume ls
    Xem thông tin chi tiết:
    docker inspect [volume_name]
    Bạn sẽ thấy thư mục lưu trữ thực tế trên hệ thống host, ví dụ:
    "Source": "/var/lib/docker/volumes/[volume_name]/_data"

2. Trường hợp dùng Docker Compose#

Nếu bạn sử dụng docker-compose.yml để khởi chạy WordPress, phần cấu hình volume trong mysql hoặc mariadb service sẽ chỉ định nơi lưu trữ dữ liệu. Ví dụ:
services:
  db:
    image: mysql:latest
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:
Trong trường hợp này:
  • Volume tên db_data sẽ được lưu ở: /var/lib/docker/volumes/db_data/_data trên máy chủ Docker.

3. Cách truy cập dữ liệu trong phpMyAdmin#

phpMyAdmin không lưu trữ dữ liệu, mà chỉ quản lý cơ sở dữ liệu được kết nối. Để xem hoặc xuất dữ liệu:
  1. Đăng nhập phpMyAdmin qua trình duyệt (thường qua http://localhost:8080).
  2. Sử dụng tài khoản MySQL/MariaDB để truy cập.
  3. Thao tác với cơ sở dữ liệu bạn cần.

4. Cách sao lưu dữ liệu MySQL/MariaDB#

Bạn có thể sao lưu dữ liệu MySQL/MariaDB để sử dụng lại hoặc di chuyển:
  • Dùng Docker CLI:
    docker exec [mysql_container_id] mysqldump -u root -p [database_name] > backup.sql
  • Sao lưu từ phpMyAdmin:
    1. Mở phpMyAdmin.
    2. Chọn cơ sở dữ liệu cần sao lưu.
    3. Chọn Export và tải xuống file .sql.

5. Tóm lại#

  • phpMyAdmin không lưu dữ liệu – nó chỉ truy cập dữ liệu được lưu trong MySQL/MariaDB.
  • Dữ liệu MySQL/MariaDB được lưu ở:
    • /var/lib/mysql trong container.
    • Hoặc thư mục trên host được gắn qua Docker volume.
Nếu bạn cần kiểm tra hoặc cấu hình lại, hãy kiểm tra cấu hình volume hoặc container MySQL của bạn.

Bài viết liên quan