Docker compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration.
Itʼs worth noting that all required images are acquired from Docker Hub:
- WordPress - the official WordPress Docker image with all WordPress files, Apache server and PHP;
- MySQL - required for MySQL root user, password, and database connection variables;
- phpMyAdmin - a web application for managing databases.
Check Docker Compose version
Open your favorite command line interface and check the Docker Compose installation version:
docker compose version
This will confirm that the Compose module is working correctly.
Create a project folder
Create a new project directory for WordPress application and navigate to it with the following command:
mkdir ~/wordpress && cd ~/wordpress
Create the docker-compose.yml file
Using your preferred text editor, create a new docker-compose.yml file and add the contents below:
version: "3"
# Defines which compose version to use
services:
# Services line define which Docker images to run. In this case, it will be MySQL server and WordPress image.
db:
image: mysql:5.7
# image: mysql:5.7 indicates the MySQL database container image from Docker Hub used in this installation.
restart: always
environment:
MYSQL_ROOT_PASSWORD: MyR00tMySQLPa$$5w0rD
MYSQL_DATABASE: MyWordPressDatabaseName
MYSQL_USER: MyWordPressUser
MYSQL_PASSWORD: Pa$$5w0rD
# Previous four lines define the main variables needed for the MySQL container to work: database, database username, database user password, and the MySQL root password.
wordpress:
depends_on:
- db
image: wordpress:latest
restart: always
# Restart line controls the restart mode, meaning if the container stops running for any reason, it will restart the process immediately.
ports:
- "8000:80"
# The previous line defines the port that the WordPress container will use. After successful installation, the full path will look like this: http://localhost:8000
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: MyWordPressUser
WORDPRESS_DB_PASSWORD: Pa$$w0rD
WORDPRESS_DB_NAME: MyWordPressDatabaseName
# Similar to MySQL image variables, the last four lines define the main variables needed for the WordPress container to work properly with the MySQL container.
volumes:
["./:/var/www/html"]
volumes:
mysql: {}
Run Docker compose
With the docker-compose.yml created, run the following command in the same wordpress directory to create and start the containers:
docker compose up -d
Top comments (0)