🐬 MySQL (MariaDB) en Docker con Alpine
Este documento describe paso a paso cómo instalar, configurar e integrar MariaDB dentro de un contenedor Alpine Linux en Docker. Esta guía cumple con los criterios de evaluación de la UF2 (Implementación) y la UF4 (Documentación) del módulo de despliegue.
🐳 1. Acceder al contenedor mysql
Antes de nada, asegúrate de que el contenedor mysql
esté en ejecución. Luego, accede a él:
docker exec -it mysql sh
Esto te abrirá una consola interactiva dentro del contenedor, permitiéndote ejecutar comandos como si estuvieras en un sistema Linux.
🛆 2. Instalación de MariaDB
Ahora debemos instalar MariaDB, que es un sistema de gestión de bases de datos compatible con MySQL, ideal para Laravel.
2.1 Actualizar repositorios de paquetes
apk update

Este comando actualiza el índice de paquetes para que puedas descargar las últimas versiones disponibles.
2.2 Instalar MariaDB y herramientas necesarias
apk add mariadb mariadb-client nano
mariadb
: instala el servidor de base de datos.mariadb-client
: permite conectarte mediante el comandomariadb
.nano
: editor de texto básico útil en Alpine.
📁 3. Preparación del entorno de MariaDB
Antes de iniciar el servidor, necesitas crear los directorios necesarios para que MariaDB funcione correctamente.
mkdir -p /run/mysqld
chown -R mysql:mysql /run/mysqld /var/lib/mysql
mkdir -p
: crea/run/mysqld
si no existe.chown
: asigna los permisos correctos de usuario y grupo (mysql:mysql
) para evitar errores de ejecución.
🏐 4. Inicialización de la base de datos
Este paso prepara la estructura interna que necesita MariaDB para funcionar.
mysql_install_db --user=mysql --datadir=/var/lib/mysql
--user=mysql
: define el usuario que inicializa el sistema.--datadir
: ubicación donde se guardan los archivos binarios de las bases de datos.
Este comando no lanza el servidor, solo prepara el sistema de ficheros.
▶️ 5. Iniciar MariaDB
Una vez todo esté preparado, puedes arrancar el servicio:
mysqld --user=mysql &
El símbolo &
hace que el proceso corra en segundo plano. Puedes verificar que esté funcionando con:
ps aux | grep mysql
Deberías ver procesos como mysqld
.
🫠 6. Acceder a la consola de MariaDB
Ya puedes acceder al sistema de base de datos con:
mariadb
Si todo ha ido bien, verás el prompt interactivo de MariaDB para ejecutar consultas SQL.
🛠️ 7. Crear base de datos y usuario para Laravel
Laravel necesita una base de datos y un usuario con permisos para operar. Desde el cliente mariadb
, ejecuta:
CREATE DATABASE josue_db;
CREATE USER 'sail'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON josue_db.* TO 'sail'@'%';
FLUSH PRIVILEGES;
Explicación:
CREATE DATABASE josue_db;
→ Crea la base de datos para tu proyecto Laravel.CREATE USER 'sail'@'%'...
→ Crea un usuario accesible desde cualquier IP.GRANT ALL PRIVILEGES...
→ Le da control total sobre la base de datos.FLUSH PRIVILEGES;
→ Aplica los cambios.
🔐 Puedes cambiar el nombre de usuario, la base de datos y la contraseña según tus preferencias.
🔢 8. Verificar conexión desde Laravel
Ahora sal del contenedor mysql
con exit
, y entra al contenedor de Laravel:
docker exec -it laravel sh
Ejecuta las migraciones para asegurarte de que Laravel se conecta correctamente a la base de datos:
php artisan migrate
Esto creará las tablas por defecto (users
, password_resets
, etc.).
🔄 9. Reiniciar MariaDB (opcional)
Si necesitas reiniciar el servidor, puedes usar:
pkill mysqld
mysqld --user=mysql &
Esto detiene el proceso y lo arranca de nuevo. Útil si haces cambios en configuración o quieres reiniciar el entorno sin salir del contenedor.
✅ Checklist Evaluación UF2/UF4
Requisito | Cumplido |
---|---|
MariaDB instalado correctamente (Alpine) | ✅ |
Inicialización del sistema de datos | ✅ |
Base de datos josue_db creada | ✅ |
Usuario sail creado con permisos correctos | ✅ |
Laravel conectado a la base de datos | ✅ |
Documentación clara con capturas | ✅ |