curl -fsSL https://get.docker.com | sh
systemctl enable docker && systemctl start dockerVerify: docker compose version should show v2.x.
mkdir -p /root/wordpress-site && cd /root/wordpress-site
# Copy docker-compose.yml, nginx.conf, .env from this repocp .env.example .env
nano .envSet strong passwords and your domain:
MYSQL_ROOT_PASSWORD=your_strong_root_password
MYSQL_DATABASE=wordpress
MYSQL_USER=wordpress
MYSQL_PASSWORD=your_strong_db_password
DOMAIN=yourdomain.com
EMAIL=you@email.com
docker compose up -d# Check all 3 containers are running
docker compose ps
# Check logs
docker compose logs -f wordpressYou should see:
db— healthywordpress— running on :80nginx— running on :80/:443
# Stop all services
docker compose down
# Restart a single service
docker compose restart nginx
# View WordPress files
docker compose exec wordpress ls /var/www/html
# Access MySQL
docker compose exec db mysql -u wordpress -p# Database backup
docker compose exec db mysqldump -u root -p wordpress > backup.sql
# Files backup
docker cp $(docker compose ps -q wordpress):/var/www/html ./wp-backup