MariaDB
Fuente: MariaDB y phpMyAdmin
Uno de los elementos importantes de un entorno son las bases de datos (BBDD). Es donde se almacenan los datos necesarios para que las aplicaciones puedan guardar y gestionar persistentemente en el disco.
Habitualmente, cuando creo un Docker de motor de BBDD, añado también un gestor gráfico o tipo web para agilizar la gestión de la misma. Así que en este caso he añadido phpMyAdmin.
También prefiero centralizarlo todo en un contenedor y que el resto se conecte a este, para así no duplicar las instalaciones de motores de BBDD y ser más conservador en los recursos de memoria, centralizar copias de seguridad...
---
services:
mariadb:
container_name: mariadb
image: mariadb
restart: always
networks:
- mariadbnet
volumes:
- ./mariadb:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${DATABASE_PWD}
phpmyadmin:
container_name: phpmyadmin
image: phpmyadmin
restart: always
depends_on:
- mariadb
networks:
- mariadbnet
ports:
- "80:80"
environment:
- PMA_HOST=mariadb
networks:
mariadbnet:
external: true
Variables
DATABASE_PWD
: Contraseña del usuarioroot
de la BD.
Notas
image
: Al no indicar nada, siempre escogerá la etiquetalatest
.networks
: Todos los contenedores que creemos a partir de ahora que necesiten conectarse a MariaDB, se han de añadir a la redmariadbnet
.
Copias de seguridad
Hacer copias de seguridad es una obligación si no quieres perder tus datos. Con este script puedes hacer copias separadas por BD.
#!/bin/bash
# Eliminamos los archivos más antiguos de 20 días
find -L ./mariadb_bck -mtime +20 -type f -delete
# Realizamos copia de seguridad individual de cada BD
docker exec mariadb mariadb -u root --password="ContraseñaMolonaDeroot" --batch --skip-column-names -e 'show databases;' | grep -E -v 'information_schema|performance_schema|mysql' | while read db; do docker exec mariadb mariadb-dump -u root --password="ContraseñaMolonaDeroot" --comments --dump-date --extended-insert --routines --system=user "$db" | gzip -c --best > "./mariadb_bck/$(date +%Y%m%d%H%M%S).$db.sql.gz"; done
Para ejecutarlo hay que recordar hacerlo ejecutable (chmod u+x backup.sh
) y muy recomendable añadirlo a cron
para que se haga periódicamente.
No comments to display
No comments to display