# 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](https://www.ionos.mx/digitalguide/servidores/know-how/que-es-docker/) ofrece una manera sencilla de desplegar [MariaDB](https://www.ionos.mx/digitalguide/servidores/know-how/que-es-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](https://www.ionos.mx/digitalguide/servidores/configuracion/docker-compose-tutorial/) 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**:

```bash
curl -sSL https://get.docker.com/ | sh
```

En Windows o macOS se recomienda utilizar **Docker Desktop**. Tras completar la instalación, verifica que funciona correctamente con:

```bash
docker --version
```

La 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](https://hub.docker.com/_/mariadb "Imagen de MariaDB en Docker Hub") desde **Docker Hub**. Esta incluye una instancia de MariaDB completamente preconfigurada.

```bash
docker pull mariadb:latest
```

Si prefieres una versión concreta, también puedes especificarla de forma explícita, por ejemplo:

```bash
docker pull mariadb:10.11
```

Después, comprueba todas las imágenes almacenadas localmente con:

```bash
docker images
```

En 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:

```bash
docker run --name mariadb-container -e MYSQL_ROOT_PASSWORD=password -d -p 3306:3306 mariadb:latest
```

- `--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:

```bash
docker ps
```

En 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:

```bash
docker logs mariadb-container
```

La 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:

```bash
mysql -h 127.0.0.1 -P 3306 -u root -p
```

Se 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:

```sql
SHOW DATABASES;
```

Verá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:

```bash
docker run --name mariadb-container -e MYSQL_ROOT_PASSWORD=password -d \
    -v mariadb_data:/var/lib/mysql \
    -p 3306:3306 mariadb:latest
```

La 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:

```bash
docker volume ls
```

Y comprobar el contenido de un volumen con:

```bash
docker volume inspect mariadb_data
```

### Paso 6: gestionar MariaDB con Docker Compose

Para configuraciones más complejas es recomendable usar [Docker Compose](https://www.ionos.mx/digitalguide/servidores/configuracion/docker-compose-tutorial/). Crea un archivo llamado `docker-compose.yml` con el siguiente contenido:

```yaml
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:
```

Inicia el entorno con:

```bash
docker-compose up -d
```

Con 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:**

```bash
docker stop mariadb-container
```

**Iniciar el contenedor:**

```bash
docker start mariadb-container
```

**Eliminar el contenedor:**

```bash
docker rm mariadb-container
```

**Eliminar el contenedor junto con su volumen:**

```bash
docker rm -v mariadb-container
```

### Paso 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:

```bash
docker run --name mariadb-container -e MYSQL_ROOT_PASSWORD=password \
    -v mariadb_data:/var/lib/mysql \
    -p 3306:3306 \
    --restart unless-stopped \
    -d mariadb:latest
```

La 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.


This is a markdown version of: [https://www.ionos.mx/digitalguide/hosting/cuestiones-tecnicas/mariadb-en-docker/](https://www.ionos.mx/digitalguide/hosting/cuestiones-tecnicas/mariadb-en-docker/) for AI/LLM consumption.