Deploy WordPress with Docker Compose on Linux — Nginx, PHP, MySQL, and persistent volumes in one stack file.
Prerequisites
- Docker and Docker Compose installed
- Linux server with 2GB+ RAM
- Domain pointed to server (optional for SSL)
Step 1: Create project directory
mkdir -p ~/wordpress-docker && cd ~/wordpress-docker
Step 2: docker-compose.yml
services:
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: changeme
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: changeme
restart: always
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
volumes:
- wp_data:/var/www/html
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: changeme
WORDPRESS_DB_NAME: wordpress
restart: always
volumes:
db_data:
wp_data:
Step 3: Start the stack
docker compose up -d
docker compose ps
Open http://your-server-ip:8080 to complete WordPress setup.

Step 4: Useful commands
docker compose logs -f wordpress
docker compose down
docker compose pull && docker compose up -d