|
@ -0,0 +1,115 @@ |
|
|
|
|
|
# Crea tu propio servidor de WordPress con Docker |
|
|
|
|
|
|
|
|
|
|
|
Wordpress es un gestor de contenidos enfocado en la creación de páginas Web y especializado en Blogs. A pesar de tener más de 18 años desde su lanzamiento, sigue siendo una de las plataformas más usadas, ya sea como un servicio instalado en tu propio servidor o a través del servicio de hospedaje que la compañía ofrece. |
|
|
|
|
|
|
|
|
|
|
|
En este post, realizado en Wordpress, te enseñare como montar una imagen de WordPress con Docker. Para esto, supondremos que ya tienes una noción básica de Docker. Sino hecha un vistazo a esta guía básica sobre su instalación y uso. |
|
|
|
|
|
|
|
|
|
|
|
## Archivo docker-compose.yml |
|
|
|
|
|
|
|
|
|
|
|
Docker cuenta con una serie de comandos para crear/montar imágenes en minutos, entre ellas esta `docker-compose` y `docker stack deploy` , esto es posible a partir de un archivo en formato `yml` que le indica como montar la imagen siempre de la misma manera; y así tener reproducibilidad. Por lo tanto crea una carpeta para el proyecto y crea el archivo (con vi, nano o tu editor de preferencia) `docker-compose.yml.` |
|
|
|
|
|
|
|
|
|
|
|
```bas |
|
|
|
|
|
$ mkdir wordpress |
|
|
|
|
|
gmarx@gmarx-MacBookAir:~/wordpress$ vi docker-compose.yml |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
y agrega el siguiente código al archivo `docker-compose.yml`: |
|
|
|
|
|
|
|
|
|
|
|
```yaml |
|
|
|
|
|
version: '3.1' |
|
|
|
|
|
|
|
|
|
|
|
services: |
|
|
|
|
|
|
|
|
|
|
|
wordpress: |
|
|
|
|
|
image: wordpress |
|
|
|
|
|
restart: always |
|
|
|
|
|
ports: |
|
|
|
|
|
- 8080:80 |
|
|
|
|
|
environment: |
|
|
|
|
|
WORDPRESS_DB_HOST: db |
|
|
|
|
|
WORDPRESS_DB_USER: admin |
|
|
|
|
|
WORDPRESS_DB_PASSWORD: examplePass |
|
|
|
|
|
WORDPRESS_DB_NAME: exampledb |
|
|
|
|
|
volumes: |
|
|
|
|
|
- wordpress:/var/www/html |
|
|
|
|
|
|
|
|
|
|
|
db: |
|
|
|
|
|
image: mysql:5.7 |
|
|
|
|
|
restart: always |
|
|
|
|
|
environment: |
|
|
|
|
|
MYSQL_DATABASE: exampledb |
|
|
|
|
|
MYSQL_USER: admin |
|
|
|
|
|
MYSQL_PASSWORD: exmaplePass |
|
|
|
|
|
MYSQL_RANDOM_ROOT_PASSWORD: '1' |
|
|
|
|
|
volumes: |
|
|
|
|
|
- db:/var/lib/mysql |
|
|
|
|
|
|
|
|
|
|
|
volumes: |
|
|
|
|
|
wordpress: |
|
|
|
|
|
db: |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
El archivo le indica a *Docker* las imágenes y versión que se usaran (`services`) en este caso se etiquetan dos: `wordpress` y `db`; por lo tanto tendremos dos contenedores. En cada caso se indican los puertos que estarán expuestos (para `wordpress` 8080 y `db` ninguno), las variables (*environment*) usadas en cada contenedor y sus respectivos valores; en estas variables no olvides indicar el mismo usuario y su respectivo password para wordpress pueda accesar a la base de datos de mysql . En cada servicio también se indican de que manera se conectan los volúmenes de datos y a donde apuntan (origen:destino). |
|
|
|
|
|
|
|
|
|
|
|
## Arrancando el servidor |
|
|
|
|
|
|
|
|
|
|
|
Ahora para probar el contenedor solo ejecuta `docker-compose up -d` desde la carpeta donde esta el archivo `docker-compose.yml` y obtendrás unos resultados similares a los siguientes: |
|
|
|
|
|
|
|
|
|
|
|
```bash |
|
|
|
|
|
gmarx@gmarx-MacBookAir:~/wordpress$ docker-compose up -d |
|
|
|
|
|
Creating network "wordpress_default" with the default driverCreating volume "wordpress_wordpress" with default driverCreating volume "wordpress_db" with default driverPulling wordpress (wordpress:)...latest: Pulling from library/wordpress69692152171a: Already exists2040822db325: Pull complete9b4ca5ae9dfa: Pull completeac1fe7c6d966: Pull complete5b26fc9ce030: Pull complete3492f4769444: Pull complete1dec05775a74: Pull complete77107a42338e: Pull completef58e4093c52a: Pull completed32715f578d3: Pull complete7a73fb2558ce: Pull complete667b573fcff7: Pull complete75e2da936ffe: Pull complete759622df3a7b: Pull complete |
|
|
|
|
|
c2f98ef02756: Pull complete |
|
|
|
|
|
50e11300b0a6: Pull complete |
|
|
|
|
|
de37513870b9: Pull complete |
|
|
|
|
|
f25501789abc: Pull complete |
|
|
|
|
|
0cf8e3442952: Pull complete |
|
|
|
|
|
d45ce270a7e6: Pull complete |
|
|
|
|
|
534cdc5a6ea6: Pull complete |
|
|
|
|
|
Digest: sha256:e9da0d6c867249f364cd2292ea0dd01d7281e8dfbcc3e4b39b823f9a790b237b |
|
|
|
|
|
Status: Downloaded newer image for wordpress:latest |
|
|
|
|
|
Pulling db (mysql:5.7)... |
|
|
|
|
|
5.7: Pulling from library/mysql |
|
|
|
|
|
69692152171a: Already exists |
|
|
|
|
|
1651b0be3df3: Pull complete |
|
|
|
|
|
951da7386bc8: Pull complete |
|
|
|
|
|
0f86c95aa242: Pull complete |
|
|
|
|
|
37ba2d8bd4fe: Pull complete |
|
|
|
|
|
6d278bb05e94: Pull complete |
|
|
|
|
|
497efbd93a3e: Pull complete |
|
|
|
|
|
a023ae82eef5: Pull complete |
|
|
|
|
|
e76c35f20ee7: Pull complete |
|
|
|
|
|
e887524d2ef9: Pull complete |
|
|
|
|
|
ccb65627e1c3: Pull complete |
|
|
|
|
|
Digest: sha256:a682e3c78fc5bd941e9db080b4796c75f69a28a8cad65677c23f7a9f18ba21fa |
|
|
|
|
|
Status: Downloaded newer image for mysql:5.7 |
|
|
|
|
|
Creating wordpress_wordpress_1 ... done |
|
|
|
|
|
Creating wordpress_db_1 ... done |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
si nada sale mal quiere decir que ahora tienes un contenedor listo para configurar con wordpress. Para lograr esto visita la página `localhost:8080` en un explorador como mozilla. El resultado será algo así: |
|
|
|
|
|
|
|
|
|
|
|
![wordpress](/home/gmarx/Pictures/wordpress.png) |
|
|
|
|
|
|
|
|
|
|
|
ahora solo necesitas seguir los pasos que se te irán presentando en el propio navegador para que se defina el nombre del sitio, *username* principal, contraseña, entre otras cosas. Para finalizar nececitas hacer click en el botón de instalar WordPress. |
|
|
|
|
|
|
|
|
|
|
|
![install-wp2](/home/gmarx/Pictures/install-wp2.png) |
|
|
|
|
|
|
|
|
|
|
|
Listo, ahora solo tienes que hacer *login* con tu nombre de usuario y contraseña...![install_wp3](/home/gmarx/Pictures/install_wp3.png) |
|
|
|
|
|
|
|
|
|
|
|
Finalmente debes poder entrar al sitio en modo administrador para poder gestionarlo y configurarlo a tu antojo, como un sitio de WordPress. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![wordpress-online](/home/gmarx/Pictures/wordpress-online.png) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Recuerda que este contenedor quedó vinculado con un volumen creado por Docker, el volumen se llama `wordpress` y en éste se almacenara todos los datos del servicio de WordPress, por lo que el contenedor tendrá persistencia de datos. |
|
|
|
|
|
|
|
|
|
|
|
Puedes probar creando una entrada en el blog y después detener el contenedor ejecutando `docker-compose down` , desde la misma carpeta del proyecto y después volver a arrancar el servicios con `docker-compose up -d` . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|