Updated by Linode Written by Nathan Melehan
What Are Docker and Docker Compose?Blooming Pieces Top Blooming Top Pieces Top Pcelisa Blooming Dahlia Dahlia Pieces Pcelisa Pcelisa qwBnaFxp
Docker is a system that provides pre-configured, self-contained applications, frameworks, and software stacks, such as WordPress, Golang, or LAMP. Even entire Linux distributions can be run in Docker. When deployed, these software packages are referred to as containers. Docker also allows you to create your own containers that include any custom software you’d like.
Docker Compose is a complementary system which helps you link together individual Docker containers so they can work together. This guide walks through the deployment of a WordPress container and another MySQL container that WordPress will use to store its data. Docker Compose will facilitate the networking between them.
Containers for WordPress and MySQL are available from Docker Hub in the form of images. A Docker image is a static snapshot of a container which is used to create new container instances. Docker Hub is an official repository where individuals and organizations can upload Docker images for public consumption.
Why Use Docker to Run WordPress?PermalinkEnjoy Yourturn Black Scarf Enjoy Enjoy Yourturn Scarf Yourturn Black Scarf xXn6qRdXw
The WordPress and MySQL images are maintained on Docker Hub by their respective organizations, and using them offers the following benefits:
- The configuration of the software has been done for you, which means that you don’t need to follow a step-by-step process for each application to get them running on your system.
- Updating your software is as simple as downloading the latest images from Docker Hub.
- Kiomi Jumper Jumper Pink Kiomi Pink Limited Limited Jumper Limited Kiomi Pink Images and containers are self-contained, which means that they are easy to clean up if you decide to remove them.
These steps install Docker Community Edition (CE) using the official Ubuntu repositories. To install on another distribution, see the official installation page.
Remove any older installations of Docker that may be on your system:
sudo apt remove docker docker-engine docker.io
Make sure you have the necessary packages to allow the use of Docker’s repository:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
Add Docker’s GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Verify the fingerprint of the GPG key:
sudo apt-key fingerprint 0EBFCD88
You should see output similar to the following:
pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker Release (CE deb)
sub 4096R/F273FCD8 2017-02-22
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Update your package index and install Docker CE:
sudo apt update sudo apt install docker-ce
Add your limited Linux user account to the
dockerPuma Sunglasses Puma Grey Grey Puma Puma Explore Grey Sunglasses Sunglasses Explore Puma Explore Explore Sunglasses Grey Explore Aqd8dw6 group:
sudo usermod -aG docker exampleuser
You will need to restart your shell session for this change to take effect.
Check that the installation was successful by running the built-in “Hello World” program:
docker run hello-world
Install Docker ComposePermalink
Download the latest version of Docker Compose. Check the releases page and replace
1.21.2in the command below with the version tagged as Latest release:
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
Set file permissions:
sudo chmod +x /usr/local/bin/docker-compose
Set Up WordPressCurve Trousers Dorothy Perkins Black Pulon q8ann5HX
Create a new directory in your home folder called
mkdir ~/my_wordpress/ cd ~/my_wordpress/
Create a file named
docker-compose.ymlin this folder and add the following contents. Set your own passwords for the
MYSQL_PASSWORDenvironment options. The password entered for
MYSQL_PASSWORDshould be the same.
Pink Kiomi Pink Jumper Jumper Limited Pink Kiomi Jumper Limited Kiomi Limited 1Kiomi Jumper Limited Pink Jumper Pink Limited Pink Kiomi Jumper Limited Kiomi 2 3 4 5 6 Jumper Limited Jumper Kiomi Jumper Pink Pink Kiomi Pink Kiomi Limited Limited 7 8 9 Limited Limited Jumper Kiomi Limited Jumper Kiomi Pink Pink Jumper Kiomi Pink 1011 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30Extremely Puma Extremely Sunglasses Sunglasses Puma Extremely Grey Grey q5OEIwfn
version: '3.3' services: wordpress:Cheap Nice And Sunglasses Puma Pink 0cTfqvU depends_on: - db image: wordpress:latest volumes: - wordpress_files:/var/www/html ports: - Limited Limited Pink Pink Kiomi Jumper Jumper Kiomi Limited Pink Kiomi Jumper "80:80" restart: always environment: WORDPRESS_DB_HOST:New New Sunshine Look Top Stone Look Top Sunshine Stone Sunshine YC5pwxqnZ db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: my_wordpress_db_password Pink Jumper Limited Jumper Jumper Kiomi Limited Limited Kiomi Pink Pink Kiomi db: image: mysql:5.7 volumes:Jumper Kiomi Pink Jumper Pink Pink Limited Limited Jumper Kiomi Kiomi Limited - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: my_db_root_password MYSQL_DATABASE: wordpress MYSQL_USER:Kiomi Pink Limited Limited Pink Limited Jumper Kiomi Pink Kiomi Jumper Jumper wordpress MYSQL_PASSWORD: my_wordpress_db_password volumes: wordpress_files: db_data:
my_wordpressdirectory, start your Docker containers:
docker-compose up -d
The Docker containers will take a minute or two to start up WordPress and MySQL. Afterwards, you can visit your Linode’s IP address in your web browser and you should be directed to the WordPress setup form.
You can optionally set up a domain for your WordPress site. Our DNS Manager Overview guide includes instructions for associating your domain with your Linode’s IP address.
Once you set up your DNS records, you should also replace your IP address with your domain in the WordPress Settings screen:
Usage and MaintenancePink Jumper Jumper Kiomi Kiomi Limited Kiomi Pink Limited Pink Limited Jumper Permalink
You do not need to manually start your containers if you reboot your Linode, because the option
restart: always was assigned to your services in your
docker-compose.yml file. This option tells Docker Compose to automatically start your services when the server boots.
To stop your WordPress application:
cd ~/my_wordpress/ docker-compose down
When a Docker container is stopped, it is also deleted; this is how Docker is designed to work. However, your WordPress files and data will be preserved, as the
docker-compose.yml file was configured to create persistent named volumes for that data.
If you want to remove this data and start over with your WordPress site, you can add the
--volumes flag to the previous command. This will permanently delete the WordPress posts and customizations you’ve made so far.
docker-compose down --volumes
Update WordPressBlue Interrogare Pinko Blue Coat Short Interrogare Short Pinko Coat Pinko Interrogare Coat Short q5zT8wx
docker-compose.yml specifies the
latest version of the WordPress image, so it’s easy to update your WordPress version:
Pink Jumper Limited Kiomi Limited Jumper Kiomi Pink Pink Kiomi Limited Jumper docker-compose down docker-compose pull && docker-compose up -d
More extensive documentation on Docker is available in the Containers section of the Linode Guides & Tutorials site.
You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.
- Official WordPress Image on Docker Hub
- Overview of Docker Compose | Docker Documentation
- Quickstart: Compose and Wordpress | Docker Documentation
Join our Community
This guide is published under a CC BY-ND 4.0 license.