Dockerizar una base de datos

Llevo entre manos un proyecto software, da un poco igual de qué se trata. Pero como casi todo software, necesita guardar datos, y la idea es guardarlos en una base de datos.

¿Qué base de datos utilizar? En un principio había pensado en PostgreSQL, por ser software libre, pero no tengo nada de experiencia con ella. Sí estoy acostumbrado a MySQL, pero prefiero usar software libre, así que me voy a decidir por MariaDB, que es prácticamente un MySQL, pero en software libre.

Las primeras pruebas las hice con PostgreSQL, y fueron muy fáciles. Las siguientes las hice con MariaDB, y fueron igual de fáciles. Así que aquí cuento cómo usar una imagen de docker de MariaDB para tener la base de datos funcionando.

Obtener la imagen docker

He usado la imagen la última imagen de mariadb

Arrancar un contendor de dicha imagen

En la misma documentación de la imagen indican cómo arrancar un contenedor, pero para ahorrar tiempo, el comando sería tal que así:

docker run \
    -p 3306:3306 \
    --env MYSQL_ROOT_PASSWORD=root-pwd \
    --env MYSQL_USER=user \
    --env MYSQL_PASSWORD=password \
    --env MYSQL_DATABASE=db \
    --name mariadb-db \
    -d \
    mariadb:latest 

Conectar al contendor creado

De entre los muchos clientes para acceder a MariaDB (o MySQL), he escogido con el que viene integrado en el IDE PhpStorm, que es el IDE al que estoy acostumbrado. También podría haber elegido phpMyAdmin, o algún otro gestor de bases de datos gráfico.

En PhpStorm, crear un nuevo datasource, de tipo MySQL (funciona bien para MariaDB supongo), y configurar host, puerto, base de datos, usuario y contraseña. Lo básico vamos:

some image