/ HOWTO

Instalar MariaDB 5.5/10.1/10.2 en Docker.


Receta detallada para instalar la últimas versiones de MariaDB, varias versiones en Docker.


Una de las ventajas de Docker es la de poder probar un producto sin tener que instalar todo un sistema operativo.

Actualmente con los cambios evolutivos en las versiones de MariaDB y MySQL, es bueno poder probar migraciones de bases de datos entre productos fácilmente.

En Docker existe una página oficial con información sobre MariaDB.

https://docs.docker.com/samples/library/mariadb/

Y un sitio oficial de repositorios de distintas versiones de MariaDB.

https://github.com/docker-library/mariadb

El espacio para la última version de 10.2.xx es

https://github.com/docker-library/mariadb/tree/f50d0a8218602a64806a4eb907b3b5dcc5916981/10.2

Se deben bajar dos archivos localmente en la misma carpeta.

# vi docker-entrypoint.sh
# vi Dockerfile

Luego generar la imágen con

# docker build -t mariadb102 .

Demorará un rato porque debe hacer varios cambios y configuraciones para instalar esa versión de MariaDB.

Podemos cambiar el nombre de la imágen con este comando

# docker tag mariadb102   nuevo_nombre

Arrancar un contenedor usando esa imágen.

# docker run --name mariadb10210 -e MYSQL_ROOT_PASSWORD=testing -d mariadb102

Veremos el contenedor corriendo en background

# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
d3f16f7859c1        mariadb102          "docker-entrypoint..."   54 seconds ago      Up 53 seconds       3306/tcp            mariadb10210

Podemos arrancar una sesión “bash” contra ese nuevo contenedor que acabamos de crear.

# docker exec -it mariadb10210 bash
root@d3f16f7859c1:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay         229G  199G   20G  92% /
tmpfs            64M     0   64M   0% /dev
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda2       229G  199G   20G  92% /etc/hosts
shm              64M     0   64M   0% /dev/shm
tmpfs           3.9G     0  3.9G   0% /sys/firmware

Y también podemos conectarnos desde nuestro equipo real directamente al servidor MariaDB.

# mysql -uroot -p -h 172.17.0.2
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.2.10-MariaDB-10.2.10+maria~jessie mariadb.org binary distribution
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

Como en todo contenedor, podremos parar y arrancarlo con estos comandos, en nuestro caso el contenedor se llama “mariadb10210”.

# docker stop mariadb10210
mariadb10210
# docker start mariadb10210
mariadb10210

Pasamos ahora a generar otras versiones de MariaDB para nuestras pruebas.

# cd 10.1
# docker build -t mariadb101 .
# docker run --name mariadb10128 -e MYSQL_ROOT_PASSWORD=testing -d mariadb101

# cd ../5.5
# docker build -t mariadb55 .
# docker run --name mariadb5558 -e MYSQL_ROOT_PASSWORD=testing -d mariadb55

Las imágenes que tenemos instaladas localmente

# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED              SIZE
mariadb55               latest              8d77deaa9aa5        About a minute ago   280MB
mariadb101              latest              1b1ceb2ffadd        8 minutes ago        395MB
mariadb102              latest              2e00b3316123        About an hour ago    397MB

Los contenedores creados

# docker ps -a
CONTAINER ID        IMAGE                   COMMAND                  CREATED              STATUS                    PORTS               NAMES
f1773511204b        mariadb55               "docker-entrypoint..."   About a minute ago   Up About a minute         3306/tcp            mariadb5558
47b2b77cf25b        mariadb101              "docker-entrypoint..."   7 minutes ago        Up 7 minutes              3306/tcp            mariadb10128
d3f16f7859c1        mariadb102              "docker-entrypoint..."   About an hour ago    Up 41 minutes             3306/tcp            mariadb10210

Y con los 3 motores instalados y funcionando, (172.17.0.2, 3 y 4) las estdísticas simples de uso son.

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
d3f16f7859c1        mariadb10210        0.07%               94.92MiB / 7.685GiB   1.21%               5.78kB / 0B         5.93MB / 2.22MB     30
47b2b77cf25b        mariadb10128        0.07%               101.8MiB / 7.685GiB   1.29%               6.07kB / 1.67kB     25.3MB / 141MB      27
f1773511204b        mariadb5558         0.12%               102.1MiB / 7.685GiB   1.30%               3.51kB / 0B         7.81MB / 39.9MB     19

Un consumo de recursos bastante menor que tener corriendo 3 servidores Linux, cada uno con una versión distinta de MariaDB.


Subscríbete y recibirás los últimos artículos semanalmente en tu email.