Deploy WordPress with Docker Compose on Linux (Nginx + MySQL Stack)

docker compose wordpress linux

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.

Docker Compose WordPress stack on Linux
Docker Compose WordPress deployment on Linux

Step 4: Useful commands

docker compose logs -f wordpress
docker compose down
docker compose pull && docker compose up -d

Related tutorials