Run WordPress in Docker

29 July, 2024

Hero

Running WordPress in Docker offers a stable and repeatable local development setup. It eliminates environment-specific issues and simplifies service management. Using Docker alongside Visual Studio Code improves usability, especially for local development and customization.

Requirements

Ensure the following components are installed:

Setup

Begin by creating a dedicated project folder.

  1. Open Visual Studio Code.
  2. Open a terminal in VS Code.
  3. Create a new directory for your project and navigate into it:
1mkdir wordpress
2cd wordpress

Docker

Inside the project directory, create a docker-compose.yml file to define the services for WordPress and its dependencies.

  1. In Visual Studio Code, create a new file named docker-compose.yml.
  2. Add the following content to the file:
1services:
2 db:
3 image: mysql:9.3
4 volumes:
5 - ./data/mysql:/var/lib/mysql
6 restart: always
7 environment:
8 MYSQL_ROOT_PASSWORD: password
9 MYSQL_DATABASE: wordpress
10 MYSQL_USER: wordpress
11 MYSQL_PASSWORD: wordpress
12 networks:
13 - wpsite
14
15 phpmyadmin:
16 depends_on:
17 - db
18 image: phpmyadmin:latest
19 restart: always
20 ports:
21 - '8080:80'
22 environment:
23 PMA_HOST: db
24 MYSQL_ROOT_PASSWORD: password
25 networks:
26 - wpsite
27
28 wordpress:
29 depends_on:
30 - db
31 image: wordpress:latest
32 ports:
33 - '8000:80'
34 restart: always
35 volumes:
36 - wordpress_data:/var/www/html
37 - ./wp-content:/var/www/html/wp-content:cached
38 environment:
39 WORDPRESS_DB_HOST: db:3306
40 WORDPRESS_DB_USER: wordpress
41 WORDPRESS_DB_PASSWORD: wordpress
42 networks:
43 - wpsite
44
45volumes:
46 wordpress_data:
47
48networks:
49 wpsite:


Services

  • db: MySQL 9.3 container with persistent storage
  • phpmyadmin: Web interface for database management at http://localhost:8080
  • wordpress: WordPress container accessible at http://localhost:8000, with local wp-content mapping

Startup

To launch your WordPress environment:

1docker-compose up -d


This starts the containers in detached mode. The initial setup can take a few minutes as Docker downloads the necessary images.

Visit http://localhost:8000 in your browser to complete the WordPress installation (language, site name, user credentials).

Container

On the first run, complete the WordPress installation in your browser by choosing a language and entering site credentials.

Management

Use the following commands for container control:

Stop

1docker-compose down

This stops and removes containers but retains volume data.

Restart

1docker-compose up -d

Customisation

To develop or install custom themes and plugins:

  1. Navigate to the wp-content/themes or wp-content/plugins directory in your project folder.
  2. Add or modify files directly.
  3. Changes reflect immediately in your running site.

Editing

Use Visual Studio Code to modify your WordPress setup:

  • Open the project directory in VS Code.
  • Edit themes, plugins, or core files.
  • Save changes to see them reflected in the browser.

Docker simplifies local WordPress development by providing a containerized, consistent environment. When paired with Visual Studio Code, it allows efficient file management, rapid customization, and reliable performance across different systems.

Be the first to leave a comment.