Trong bài viết này, mình sẽ hướng dẫn cách tạo một website WordPress đơn giản bằng Docker, sử dụng hai cách: Docker run và Docker Compose. Đừng lo nếu bạn là người mới, mình sẽ giải thích mọi thứ một cách dễ hiểu nhất nhé.
Xem thêm:
Cách tạo image từ Dockerfile – Bài 12
1. Mục Tiêu
Khi bạn muốn chạy một website WordPress, bạn cần 2 thứ:
- WordPress
- Database (MySQL) – nơi lưu trữ dữ liệu như bài viết, user…
=> Vậy nên mình sẽ tạo 2 container:
- Một container chạy WordPress.
- Một container chạy MySQL (làm database).
2. Hướng dẫn thực hiện
Cách 1: Dùng docker run để chạy thủ công từng container
Bước 1: Tạo Network Riêng
Docker mặc định không hỗ trợ DNS nội bộ (để container này gọi được container kia qua hostname), nên ta cần tạo network mới:
docker network create mywebsite
Bước 2: Chạy Container WordPress
docker run -d \
--name web \
--network mywebsite \
-p 8080:80 \
-e WORDPRESS_DB_HOST=db \
-e WORDPRESS_DB_USER=mysql \
-e WORDPRESS_DB_PASSWORD=admin123 \
-e WORDPRESS_DB_NAME=wordpress \
wordpress
Giải thích:
-p 8080:80: mở cổng truy cập web.- Các biến môi trường
-e: cấu hình database cho WordPress. --network mywebsite: giúp WordPress liên kết được với container database tên làdb.
Bước 3: Chạy Container MySQL
docker run -d \
--name db \
--network mywebsite \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=mysql \
-e MYSQL_PASSWORD=admin123 \
-e MYSQL_ROOT_PASSWORD=admin123 \
mysql:5.7
Chú ý:
- Phải dùng đúng thông tin
user,password,database namegiống với bên WordPress. - Dùng
mysql:5.7vì đây là phiên bản tương thích tốt với WordPress.
Bước 4: Kiểm Tra
Mở trình duyệt và vào địa chỉ:
http://<IP-máy-bạn>:8080
Cách 2: Dùng Docker Compose
Tạo file docker-compose.yml như sau:
version: "3"
services:
wordpress:
image: wordpress
ports:
- "9999:80"
networks:
- mywebsite
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: admin123
WORDPRESS_DB_NAME: wordpress
db:
image: mysql:5.7
networks:
- mywebsite
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: mysql
MYSQL_PASSWORD: admin123
MYSQL_ROOT_PASSWORD: admin123
networks:
mywebsite:
driver: bridge
Chạy lệnh:
docker compose up -d
Sau đó vào trình duyệt:
http://localhost:9999