Despliegue de Múltiples Aplicaciones con Docker Compose.
Tarea a realizar
- Crear 3 docker-compose.yml distintos.
- Cada uno con:
- una aplicación
- una base de datos diferente:
- MySQL
- PostgreSQL
- MongoDB
- Comprobar:
- acceso a la BBDD con DBeaver
- acceso a la app en navegador
- Desplegar una app (Wordpress) donde primero despliegue un MySQL y después el Wordpress.
Estructura 
Algo importante que hay que realizar es una visualización de la estructura que va a tener nuestro "proyecto".
compose-practica/
│
├── mysql-app/
│ └── docker-compose.yml
│
├── postgres-app/
│ └── docker-compose.yml
│
├── mongo-app/
│ └── docker-compose.yml
│
└── wordpress/
└── docker-compose.yml
1. Configurar los .
Enlace de ayuda para contenerizar. Samples
Aquí está la configuración de los 3 archivos:
2. Lanzar los contenedores.
Iremos uno por uno, primero haremos cd a la carpeta donde se encuentran y luego lanzarmos:
3. Crear conexión con DBeaver .
DBeaver es una herramienta de administración y cliente SQL universal de código abierto, nos permite gestionar múltiples bases de datos desde una sola interfaz gráfica.
Compatible con:
| Windows
| Linux
| Mac
Descargamos DBeaver.
Para descargarla iremos a la página oficial de la versión gratuita, aquí dejo también la versión PRO que es de pago.
- DBeaver versión Community (Grauita) https://dbeaver.io/download/
- DBeaver PRO (De pago) https://dbeaver.com/download/
Descargamos el .deb correspondiente a nuestro sistema operativo y ejecutamos.
Creamos las conexiones.
En la app que abriremos seleccionamos: Database -> New Database conexion
Ahora nos aparecerá para seleccionar la BD que vamos a utilizar, después añadimos la configuración correspondiente que hemos especificado en el fichero .
Not available driver
No está disponible MongoDB en la versión community de DBeaver. Pero como hemos instalado 'MongoDB express' podemos acceder a la base de datos de esta forma.
Alternativamente podemos usar también 'Mongo Compass' o 'Studio 3T' que son herramientas como MongoDB express, para gestionar consultar y visualizar bases de datos MongoDB.
Sí está disponible en la versión DBeaver PRO
¿Por qué no está disponible?
Porque DBeaver principalmente trabaja con lenguaje SQL y Mongo DB es una base de datos NoSQL.
Está oriendada a documentos que almacenan la información en formato similar a JSON. A diferencia de las bases de datos relacionales, no utiliza tablas ni esquemas fijos, lo que le proporciona mayor flexibilidad. Es muy utilizada en aplicaciones modernas por su escalabilidad y facilidad para manejar datos complejos (ej. redes sociales)
Comprobación DBeaver
Haremos doble clic sobre las bases de datos y aceptaremos descargar los drivers.
Public Key Retrieval is not allowed
En caso de tener este fallo, debemos:
Hacer clic derecho sobre la BD que nos da el problema y seleccionamos
---> 'Edit connection' -> 'Driver properties' -> allowPublicKeyRetrieval -> true
4. Desplegar Wordpress con MySQL .
Muy importante establecer volúmenes para que la información persista, porque en wordpress es totalmente necesario para que funcione correctamente.
Creamos el .
Despliegue de wordpress
Ingresamos en Wordpress y haremos modificaciones para ver que los cambios persisten al cambiar eliminar el docker compose.
Ahora apagamos el servicio y lo volvemos a iniciar para comprobar que hay persistencia
$ docker compose down # Apagamos el servicio
$ docker compose up -d # Iniciamos otra vez el servicio
Volvemos a entrar al wordpress a través de la web http://localhost:8084
Para ver que hemos hecho esto bien, debe aparecernos el usuario y los cambios que hicimos en la página.
Si ves el instalador otra vez, entonces los datos NO se han guardado.
En caso de querer eliminar el volumen también podríamos hacer este comando que elimina el volumen y de esta forma no quedaría ningun dato guardado.

















