Está en la página 1de 12

DOCKER-COMPOSE - WORDPRESS, MYSQL, PHPMYADMIN

docker-compose.yml
Se define es la versión y la red. Importante la versión, tienen algunas diferencias.
Se ha definido la red de nivel superior con nombre wordpress-net en modo puente, es el que va
por defecto.

A continuación se definen los servicios, el primero es mysql.


La imagen será la 5.7 https://hub.docker.com/_/mysql/tags?page=1&name=5.7
El nombre del contenedor mysql-wordpress
Permite conectar con la base de datos desde un terminal para lanzar comandos SQL. tty: true
Se direcciona el puerto por defecto de mysql al puerto 4208 del host.
Se crea un volumen para la persistencia de los datos. Se creará el directorio ./var/libclea/mysql/
dentro del propio directorio donde se creará el contenedor.
Variables de entorno https://hub.docker.com/_/mysql donde MYSQL_ROOT_PASSWORD será la
contraseña de root a mysql, MYSQL_DATABASE será el nombre de la base de datos que se creará
automáticamente, MYSQL_USER será el nombre de usuario que va a crear y MYSQL_PASSWORD la
contraseña del usuario anterior.
Por último se define la red a nivel de servicio wordpress-net.
El segundo servicio será el wordpress.
La imagen es la última disponible :latest https://hub.docker.com/_/wordpress
Nombre del contenedor wordpress
Mapeamos el puerto 80 al 4282
Creamos un volumen para la persistencia de datos en la dirección ./var/www/html/ del propio
directorio del contenedor.
Las variables de entorno WORDPRESS_DB_USER miusuario será el nombre de usuario de mysql, y
su contraseña WORDPRESS_DB_PASSWORD, el nombre de la base de datos
WORDPRESS_DB_NAME que se mantiene y WORDPRESS_DB_HOST y aquí se añade la ruta del
host donde está MYSQL .
Este contenedor depende del de mysql *depends_on.
Por último se define la red a nivel de servicio wordpress-net.

*Expresar dependencia entre servicios. Las dependencias de servicio provocan los siguientes
comportamientos, ejemplo:
1- docker-compose up inicia los servicios en orden de dependencia. En el ejemplo, db y redis se
inician antes que web.
2- docker-compose up SERVICE incluye automáticamente los servicios con dependencias. En el
ejemplo, docker-compose up web también crea e inicia db y redis.
3- docker-compose stop detiene los servicios en orden de dependencia. En el ejemplo web se
detiene antes de db y redis.

El tercer servicio pertenece a phpmyadmin.


La imagen será la siguiente https://hub.docker.com/r/phpmyadmin/phpmyadmin
El nombre del contenedor será wordpress-phpmyadmin
Mapeamos el puerto 80 al 4283.
Las variables de entorno PMA_HOST especifica el servidor mysql y MYSQL_ROOT_PASSWORD la
contraseña del usuario root de mysql.
Depende del contenedor mysql.
Por último se define la red a nivel de servicio wordpress-net.
Por último levantar los servicios y comprobar que funcionan. Desde una terminal acedemos a la
ruta donde se encuentra la carpeta con el docker-compose.yml ejecutamos #docker-compose up -
d para levantar el contenedor.

Se comprueba que los servicios funcionan, se accede al navegador y a través de la dirección IP


local o localhost y el puerto asignado al servicio de wordpress 4282. En este caso la IP es:
Se comprueba también que funciona phpMyAdmin, como el caso anterior se accede desde el
navegador con la misma dirección IP y el puerto asignado al servicio 4283. Acceso con el usuario
root.

Se puede ver como se ha creado la base de datos llamada “wordpress” como se ha definido en el
archivo yaml.
A continuación se prueba a acceder con el usuario que hemos creado “miusuario”

Y funciona correctamente. Solo quedaría instalar wordpress.

Además se puede comprobar como se ha creado los directorios de los volúmenes para guardar los
datos de forma persistente.
Instalación, primer paso.
Segundo paso

Ya se puede acceder
Se añade una entrada de prueba

Se accede a la base de datos a través de localhost:4283


Y se puede observar como la base de datos con la nueva entrada

Eliminamos el contenedor y lo volvemos a levantar para comprobar la persistencia de los datos.

Nos volvemos a loguear con usuario1 y passwword1 para acceder al panel de control, se puede
observar que la entrada Prueba Entrada sigue a pesar de haber tirado el contenedor y vuelto a
levantar.

También podría gustarte