Docker WordPress
How to run WordPress in Docker.
Docker WordPress
# Run WordPress with MySQL
docker run -d --name mysql \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=wordpress \
-e MYSQL_PASSWORD=wordpress \
-v mysql-data:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0
docker run -d --name wordpress \
--link mysql:mysql \
-e WORDPRESS_DB_HOST=mysql:3306 \
-e WORDPRESS_DB_USER=wordpress \
-e WORDPRESS_DB_PASSWORD=wordpress \
-e WORDPRESS_DB_NAME=wordpress \
-v wordpress-data:/var/www/html \
-p 80:80 \
wordpress:latest
docker-compose.yml
version: '3.8'
services:
database:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
volumes:
- mysql-data:/var/lib/mysql
networks:
- app-net
wordpress:
image: wordpress:latest
environment:
WORDPRESS_DB_HOST: database:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress-data:/var/www/html
ports:
- "80:80"
depends_on:
- database
networks:
- app-net
networks:
app-net:
volumes:
mysql-data:
wordpress-data:
Use Case: WordPress Application
# Run WordPress
docker-compose up -d
# Access WordPress
# http://localhost/wp-admin
Everyday Use Case
Case: An admin needs a CMS for the myapp website.
# Run WordPress
docker-compose up -d
# Back up
docker exec mysql mysqldump -u root -proot wordpress > backup.sql
# Update
docker-compose pull
docker-compose up -d
Best Practices
- Use named volumes: For persistent data
- Secure passwords: Don't use the defaults
- Back up regularly: For data safety
- Update regularly: For security
Conclusion
WordPress in Docker is easy to set up. Use docker-compose to manage WordPress and MySQL.