mirror of https://github.com/docker/docs.git
put back missing Compose Wordpress example (#4228)
* put back missing Compose Wordpress example Signed-off-by: Victoria Bialas <victoria.bialas@docker.com> * addressed review comments, postponing one comment re: yaml code fencing Signed-off-by: Victoria Bialas <victoria.bialas@docker.com>
This commit is contained in:
parent
4e31cef646
commit
6660c8ef69
|
@ -0,0 +1,147 @@
|
|||
---
|
||||
description: Getting started with Compose and WordPress
|
||||
keywords: documentation, docs, docker, compose, orchestration, containers
|
||||
title: "Quickstart: Compose and WordPress"
|
||||
---
|
||||
|
||||
You can use Docker Compose to easily run WordPress in an isolated environment
|
||||
built with Docker containers. This quick-start guide demonstrates how to use
|
||||
Compose to set up and run WordPress. Before starting, you'll need to have
|
||||
[Compose installed](/compose/install.md).
|
||||
|
||||
### Define the project
|
||||
|
||||
1. Create an empty project directory.
|
||||
|
||||
You can name the directory something easy for you to remember.
|
||||
This directory is the context for your application image. The
|
||||
directory should only contain resources to build that image.
|
||||
|
||||
This project directory will contain a `docker-compose.yml` file which will
|
||||
be complete in itself for a good starter wordpress project.
|
||||
|
||||
>**Tip**: You can use either a `.yml` or `.yaml` extension for
|
||||
this file. They both work.
|
||||
|
||||
2. Change directories into your project directory.
|
||||
|
||||
For example, if you named your directory `my_wordpress`:
|
||||
|
||||
cd my_wordpress/
|
||||
|
||||
3. Create a `docker-compose.yml` file that will start your
|
||||
`WordPress` blog and a separate `MySQL` instance with a volume
|
||||
mount for data persistence:
|
||||
|
||||
```none
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
db:
|
||||
image: mysql:5.7
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: somewordpress
|
||||
MYSQL_DATABASE: wordpress
|
||||
MYSQL_USER: wordpress
|
||||
MYSQL_PASSWORD: wordpress
|
||||
|
||||
wordpress:
|
||||
depends_on:
|
||||
- db
|
||||
image: wordpress:latest
|
||||
ports:
|
||||
- "8000:80"
|
||||
restart: always
|
||||
environment:
|
||||
WORDPRESS_DB_HOST: db:3306
|
||||
WORDPRESS_DB_USER: wordpress
|
||||
WORDPRESS_DB_PASSWORD: wordpress
|
||||
volumes:
|
||||
db_data:
|
||||
```
|
||||
|
||||
> **Notes**:
|
||||
>
|
||||
* The docker volume `db_data` persists any updates made by Wordpress
|
||||
to the database. [Learn more about docker volumes](/engine/tutorials/dockervolumes.md)
|
||||
>
|
||||
* WordPress Multisite works only on ports `80` and `443`.
|
||||
{: .note-vanilla}
|
||||
|
||||
### Build the project
|
||||
|
||||
Now, run `docker-compose up -d` from your project directory.
|
||||
|
||||
This runs [docker-compose up](/compose/reference/up/) in detached mode, pulls
|
||||
the needed images, and starts the wordpress and database containers, as shown in
|
||||
the example below.
|
||||
|
||||
```
|
||||
$ docker-compose up -d
|
||||
Creating network "my_wordpress_default" with the default driver
|
||||
Pulling db (mysql:5.7)...
|
||||
5.7: Pulling from library/mysql
|
||||
efd26ecc9548: Pull complete
|
||||
a3ed95caeb02: Pull complete
|
||||
...
|
||||
Digest: sha256:34a0aca88e85f2efa5edff1cea77cf5d3147ad93545dbec99cfe705b03c520de
|
||||
Status: Downloaded newer image for mysql:5.7
|
||||
Pulling wordpress (wordpress:latest)...
|
||||
latest: Pulling from library/wordpress
|
||||
efd26ecc9548: Already exists
|
||||
a3ed95caeb02: Pull complete
|
||||
589a9d9a7c64: Pull complete
|
||||
...
|
||||
Digest: sha256:ed28506ae44d5def89075fd5c01456610cd6c64006addfe5210b8c675881aff6
|
||||
Status: Downloaded newer image for wordpress:latest
|
||||
Creating my_wordpress_db_1
|
||||
Creating my_wordpress_wordpress_1
|
||||
```
|
||||
|
||||
> **Note**: WordPress Multisite works only on ports `80` and/or `443`.
|
||||
If you get an error message about binding `0.0.0.0` to port `80` or `443`
|
||||
(depending on which one you specified), it is likely that the port you
|
||||
configured for WordPress is already in use by another service.
|
||||
|
||||
### Bring up WordPress in a web browser
|
||||
|
||||
At this point, WordPress should be running on port `8000` of your Docker Host,
|
||||
and you can complete the "famous five-minute installation" as a WordPress
|
||||
administrator.
|
||||
|
||||
> **Note**: The WordPress site will not be immediately available on port `8000`
|
||||
because the containers are still being initialized and may take a couple of
|
||||
minutes before the first load.
|
||||
|
||||
If you are using [Docker Machine](/machine/index.md), you can run the command
|
||||
`docker-machine ip MACHINE_VM` to get the machine address, and then open
|
||||
`http://MACHINE_VM_IP:8000` in a web browser.
|
||||
|
||||
If you are using Docker for Mac or Docker for Windows, you can use
|
||||
`http://localhost` as the IP address, and open `http://localhost:8000` in a web
|
||||
browser.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### Shutdown and cleanup
|
||||
|
||||
The command [docker-compose down](/compose/reference/down.md) removes the
|
||||
containers and default network, but preserves your Wordpress database.
|
||||
|
||||
The command `docker-compose down --volumes` removes the containers, default
|
||||
network, and the Wordpress database.
|
||||
|
||||
## More Compose documentation
|
||||
|
||||
- [User guide](/compose/index.md)
|
||||
- [Installing Compose](/compose/install.md)
|
||||
- [Getting Started](/compose/gettingstarted.md)
|
||||
- [Get started with Django](/compose/django.md)
|
||||
- [Get started with Rails](/compose/rails.md)
|
||||
- [Command line reference](/compose/reference/index.md)
|
||||
- [Compose file reference](/compose/compose-file/index.md)
|
Loading…
Reference in New Issue