Desplegar en un contenedor Docker WordPress con una BBDD MySQL usando Docker Compose
Docker usa una tecnología de contenedores que nos permite desplegar imágenes y estas imágenes suelen contener servicios como base de datos – Mysql, servidor web – Nginx, sistemas de mensajería – rabbitmq y un sin fin mas. Pero unos de los problemas que presenta este sistema es que necesitaremos varios de estos servicios para hacer que funcione nuestro software.
Sin ir mas lejos y como ejemplo con WordPress el cual necesitaremos tener en nuestro caso una base de datos como MySQL y un servidor web con soporte PHP.
Por lo que la opciones que Docker nos propone para este tipo de configuraciones, es Docker Compose, el cual nos deja usar varias imágenes y comunicarlas, para conseguir los requisitos necesarios para que funcione nuestro software, en nuestro caso WordPress.
Bien para comenzar iremos a azure y haremos click en la Shell y elegimos bash
Una vez en inicialice todo, empezaremos metiendo las variables necesarias para crear un grupo de recursos, las cuales serán el nombre y la localizacion
RGNombre=»RGDocker»
REGION=»eastus»
Y ahora creamos el grupo de recursos con el siguiente comando
az group create –name $RGNombre –location $REGION
ya tendríamos creado el grupo de recursos. Ahora queremos crear el host donde montaremos los contenedores y el Docker compose. Y para eso usaremos una plantilla JSON que encontraremos en la siguiente direccion de GitHub. https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/docker-simple-on-ubuntu/azuredeploy.json
Por lo que el paso siguiente es lanzar la plantilla para que se despliegue el host mediante el siguiente comando
Az group deployment create –resource-group $RGNombre –template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/docker-simple-on-ubuntu/azuredeploy.json
Y nos pedirá que rellenemos unos parámetros como el usuario y pass
Mientras termina de desplegarse el host, instalaremos el cliente SSH putty para poder conectarnos al host.
Una vez terminado de instalar el Docker usaremos su ip para conectarnos por SSH a la maquina y montar el wordpress con la base de datos MySQL. Para eso vamos a la maquina virtual y en Overview nos mostrara la ip externa y dns
Nos conectamos por SSH
Y comprobamos que tenemos el Docker Compose instalado con el comando: Docker-compose –versión
Ahora nos ponemos como Root con el comando: Sudo Su
Y creamos una carpeta llamada «WordPress» con el comando: mkdir WordPress
Entramos en la carpeta y debemos crear el archivo YML que nos desplegara los contenedores con WordPress y la base de datos MySQL. Por lo que usaremos el siguiente comando con el editor nano para crear el archivo YML: Docker-compose.yml
Una vez dentro del archivo que acabamos de crear «Docker-compose.yml» vamos a meter el script para que monte el WordPress y el msql por lo que pondremos el siguiente script
version: '2.0'
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:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
Y guardamos con control + O
y para salir del editor nano: control + X
Una vez creado el archivo yml, lanzamos el siguiente comando dentro de la carpeta WordPress donde esta el archivo que acabamos de crear «yml» para desplegarlo.
Docker-compose up -d
Una vez ha terminado, mediante el siguiente comando, podemos ver los contenedores creados:
Docker-compose ps
Y para ir finalizando, solo nos quedaría coger la ip de la maquina virtual, o mejor el dns que nos facilita la maquina virtual y ponerlo en un explorador de internet. Y nos cargara la pagina de configuración de WordPress con lo que vemos que se ha desplegado correctamente WordPress y MySQL.
Y para terminar unos comandos útiles serán los que nos permiten apagar y encender los contenedores los cuales son:
Docker-compose start
Docker-compose stop
Autor/a: Jesus Vaquero Martin
Curso: Microsoft MCSA / MCSE Windows Server 2016 + MCSE Cloud Platform & Infrastructure
Centro: Tajamar
Año académico: 2017-2018
https://www.linkedin.com/in/jesusvaqueromartin/
https://www.youracclaim.com/user/jesus-vaquero-martin