Hôm nay mình sẽ hướng dẫn các bạn các xây dựng wordpress bằng Docker Compose. Điều kiện đầu là VPS đã cài đặt Docker CE và Docker Compose.
Docker Compose là gì?
Docker Compose là một công cụ của Docker dùng để định nghĩa và chạy các ứng dụng nhiều container. Với Docker Compose, bạn có thể định nghĩa các dịch vụ, mạng, và volume cần thiết cho ứng dụng của mình trong một tệp cấu hình duy nhất, thường là docker-compose.yml
, và sau đó khởi chạy tất cả các thành phần chỉ bằng một lệnh đơn giản.
Tại sao cần dùng Docker Compose?
Docker Compose rất hữu ích khi bạn cần chạy nhiều container Docker để tạo thành một ứng dụng hoàn chỉnh, ví dụ như một website bao gồm:
- Web server (như Nginx hoặc Apache)
- Database server (như MySQL hoặc PostgreSQL)
- Redis hoặc các cache server khác
Thay vì khởi động từng container một và cấu hình kết nối giữa chúng bằng tay, Docker Compose giúp bạn quản lý các container này một cách dễ dàng và nhanh chóng.
1. Chuẩn bị thư mục và file Docker Compose
mkdir wordpress_docker
cd wordpress_docker
Tạo một file docker-compose.yml
trong thư mục này và thêm nội dung sau:
services:
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql # Mount MySQL data to a host folder
restart: always
environment:
MYSQL_ROOT_PASSWORD: Qwerty@321
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: Qwerty@321
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- 8000:80
volumes:
- ./wordpress:/var/www/html # Mount WordPress data to a host folder
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: Qwerty@321
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
restart: always
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: Qwerty@321
ports:
- "8081:80"
depends_on:
- db
volumes:
db_data: {}
2. Khởi động dịch vụ
Chạy lệnh sau để khởi động: docker compose up -d
Sau khi lệnh đã tải về và cài đặt 3 container. Ta có thể thấy 3 container đã được tạo wordpress được listen port 8000 để truy cập từ bên ngoài và port 80 để sử dụng trong container.
Ta có thể truy cập wordpress qua link: http://<IP VPS>:8000
Tiến hành nhập các thông số cần thiết để cấu hình.
3. Một vài lệnh quản trị với docker compose
Stop và delete toàn bộ container:
docker compose down
Với lệnh này thì sẽ stop và delete toàn bộ container có trong file config .yml. Dữ liệu vẫn tồn tại nếu volume ánh xạ ra ổ bên ngoài ví dụ trường hợp:
volumes:
- ./db_data:/var/lib/mysql
Thì ./db_data bên ngoài sẽ còn, /var/lib/mysql
thư mục trong container sẽ bị xóa.
Khởi động lại toàn bộ container
docker compose restart
Liệt kê các container đang hoạt động
docker compose ps -a
Xem log hoạt động của các container
docker compose logs
Hoặc xem log realtime với lệnh: docker compose logs -f
Kiểm tra config
docker compose config
Cập nhật images
docker compose pull
Xóa container, images, network khi container đã stop
docker system prune
4. Backup và restore dịch vụ
Copy thư mục wordpress_docker
tới 1 VPS bất kỳ cài đặt docker ce và docker compose là có thể run: docker compose up -d
để và hoạt động bình thường.
Chúc các bạn thành công !!