MariaDB en Docker: guía de instalación paso a paso
Docker es una solución ideal para desplegar MariaDB de forma rápida y sencilla. Solo necesitas descargar la imagen adecuada, configurarla e iniciar el contenedor con los parámetros deseados. De este modo, podrás probar o desarrollar aplicaciones con MariaDB en Docker, de manera independiente del sistema host y dentro de un entorno controlado.
Ventajas de usar MariaDB con Docker
Docker ofrece una manera sencilla de desplegar MariaDB en entornos aislados. Permite iniciar instancias rápidamente y probar diferentes versiones de forma independiente del sistema host. Así se ahorra tiempo, se evitan conflictos con instalaciones locales y se crean condiciones reproducibles para el desarrollo y las pruebas.
Requisitos previos
Antes de empezar, asegúrate de cumplir con los siguientes requisitos:
- Docker está instalado y en ejecución en tu sistema
- Acceso a una consola (Terminal, PowerShell, etc.) con privilegios de administrador
- Opcional para MariaDB: Docker Compose para configuraciones más complejas
Instalación de MariaDB en Docker: guía paso a paso
A continuación, se explica cómo instalar MariaDB en Docker en pocos pasos.
Paso 1: instalar Docker
Si aún no tienes Docker instalado, puedes configurarlo fácilmente mediante el script oficial de instalación:
curl -sSL https://get.docker.com/ | shbashEn Windows o macOS se recomienda utilizar Docker Desktop. Tras completar la instalación, verifica que funciona correctamente con:
docker --versionbashLa salida debería mostrar un número de versión, por ejemplo: Docker version 27.5.1, build cb74dfcd. Si aparece, significa que Docker se ha instalado correctamente.
Paso 2: descargar la imagen de MariaDB
Ahora descarga la imagen oficial de MariaDB en Docker desde Docker Hub. Esta incluye una instancia de MariaDB completamente preconfigurada.
docker pull mariadb:latestbashSi prefieres una versión concreta, también puedes especificarla de forma explícita, por ejemplo:
docker pull mariadb:10.11bashDespués, comprueba todas las imágenes almacenadas localmente con:
docker imagesbashEn la lista debería aparecer una línea con mariadb y la etiqueta correspondiente.
Paso 3: iniciar un contenedor de MariaDB en Docker
Ahora crea el contenedor con el siguiente comando:
docker run --name mariadb-container -e MYSQL_ROOT_PASSWORD=password -d -p 3306:3306 mariadb:latestbash--name mariadb-container: asigna un nombre al contenedor para poder referenciarlo fácilmente en el sistema.-e MYSQL_ROOT_PASSWORD=password: establece la contraseña del usuario root de la base de datos MariaDB. La necesitarás más adelante para iniciar sesión.-d: ejecuta el contenedor en segundo plano (detached mode), dejando la consola libre.-p 3306:3306: vincula el puerto estándar de la base de datos dentro del contenedor con el mismo puerto en tu sistema local, lo que permite acceder con clientes externos.
Tras ejecutar el comando, Docker debería iniciar el contenedor. Para comprobar su estado:
docker psbashEn la lista de contenedores en ejecución deberías ver mariadb-container con el estado Up. Si el contenedor no arranca correctamente, consulta los registros con:
docker logs mariadb-containerbashLa salida de los registros te ayudará a identificar posibles errores de configuración.
Paso 4: acceder a MariaDB
Una vez que el contenedor de MariaDB está en ejecución, puedes conectarte con un cliente compatible con MySQL, como la herramienta estándar de MySQL o aplicaciones gráficas como DBeaver, HeidiSQL o Beekeeper Studio.
En la línea de comandos, por ejemplo, utiliza:
mysql -h 127.0.0.1 -P 3306 -u root -pbashSe te pedirá la contraseña que configuraste con MYSQL_ROOT_PASSWORD.
Si todo funciona correctamente, tendrás acceso a la consola de MariaDB, donde podrás ejecutar comandos SQL habituales:
SHOW DATABASES;sqlVerás una lista de las bases de datos predeterminadas y ya podrás crear tus propias bases de datos o tablas.
Paso 5: asegurar datos persistentes con volúmenes
Por defecto, los datos en un contenedor son temporales. Para conservarlos tras reinicios o cambios de contenedor, debes usar un volumen:
docker run --name mariadb-container -e MYSQL_ROOT_PASSWORD=password -d \
-v mariadb_data:/var/lib/mysql \
-p 3306:3306 mariadb:latestbashLa opción -v mariadb_data:/var/lib/mysql crea un volumen de Docker llamado mariadb_data y lo vincula al directorio donde MariaDB guarda sus datos.
Puedes ver los volúmenes almacenados en cualquier momento con:
docker volume lsbashY comprobar el contenido de un volumen con:
docker volume inspect mariadb_databashPaso 6: gestionar MariaDB con Docker Compose
Para configuraciones más complejas es recomendable usar Docker Compose. Crea un archivo llamado docker-compose.yml con el siguiente contenido:
version: '3.1'
services:
mariadb:
image: mariadb:latest
container_name: mariadb-compose
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: example_db
ports:
- "3306:3306"
volumes:
- mariadb_data:/var/lib/mysql
volumes:
mariadb_data:yamlInicia el entorno con:
docker-compose up -dbashCon esto, MariaDB se ejecutará en segundo plano de forma permanente, con almacenamiento persistente y una base de datos preconfigurada.
Paso 7: detener, iniciar y eliminar contenedores
La gestión de contenedores con Docker es muy sencilla. Puedes detener o reiniciar el contenedor de MariaDB en cualquier momento sin perder datos, siempre que uses volúmenes.
Detener el contenedor:
docker stop mariadb-containerbashIniciar el contenedor:
docker start mariadb-containerbashEliminar el contenedor:
docker rm mariadb-containerbashEliminar el contenedor junto con su volumen:
docker rm -v mariadb-containerbashPaso 8: reinicio automático del contenedor
Para asegurarte de que tu contenedor de MariaDB se reinicie automáticamente tras un reinicio del sistema host, puedes establecer una política de reinicio:
docker run --name mariadb-container -e MYSQL_ROOT_PASSWORD=password \
-v mariadb_data:/var/lib/mysql \
-p 3306:3306 \
--restart unless-stopped \
-d mariadb:latestbashLa opción --restart unless-stopped garantiza que el contenedor se inicie automáticamente después de un reinicio del sistema, salvo que lo hayas detenido manualmente.

