Step 1: Update your system
sudo apt update -y
sudo apt upgrade -y
Step 2: Install Docker Engine + Docker Compose plugin
Docker Compose now comes as a plugin in Docker, so installing Docker Engine will give you both.
#Copy under all code#
# Install required packages
sudo apt install -y ca-certificates curl gnupg lsb-release
# Add Docker’s official GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
# Add Docker repository
echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Update repo and install Docker Engine + Compose plugin
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Check Docker and Compose versions
docker –version
docker compose version
Step 3: Create WordPress project folder
mkdir wordpress-docker
cd wordpress-docker
Step 4: Create docker-compose.yml
nano docker-compose.yml
#Paste this content inside#
version: ‘3.8’
services:
db:
image: mysql:5.7
volumes:
– db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
image: wordpress:latest
ports:
– “80:80”
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
depends_on:
– db
volumes:
db_data:
#Save and exit: Ctrl + O → Enter → Ctrl + X#
Step 5: Run Docker Compose
sudo docker compose up -d
This will:
- Pull WordPress and MySQL images
- Create containers
- Start WordPress + MySQL in the background
Step 6: Check running containers:
sudo docker ps
Step 6: Access WordPress
Open your browser and go to:
http://<your-server-public-ip>/
You will see the WordPress installation page. Complete it:
- Site Title
- Admin Username & Password
Done! WordPress is running.
Nginx Install Instructions
sudo apt update
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
sudo nano /etc/nginx/sites-available/mindgnite
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo nginx -t
sudo systemctl restart nginx
Domain Name setup Instructions
sudo nano /etc/nginx/sites-available/wordpress
server {
listen 80;
server_name pioneermyanmar.tech www.pioneermyanmar.tech;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl restart nginx
secure your website with SSL (let’s encrypt)
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
sudo certbot –nginx -d pioneermyanmar.tech -d www.pioneermyanmar.tech