Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

MariaDB en Docker
#1

Hola

He visto que la aplicación nativa de MariaDB ( MySQL) se ha quedado un poco desfasada en la versión 5.5.57.
Una forma de usar una mas nueva es crear un contenedor con una mucho mas reciente  con versión 10.4.12.

Para hacerlo sólo hemos de tener instalada la aplicación de Docker Station, que muchas de nuestra nas, aún siendo ARM,lo soportan.

Podemos hacerlo desde el Docker Station, pero una vez hayamos hecho el container apenas podemos alterar sus definición.

Por ello recomiendo usar la consola (Putty y otros programas similares) o incluso apoyarnos en otro contenedor llamado Portainer (que permite mas cosas que Docker Station)

El comando de consola para crear el contenedor es:
Código:
docker run -d -p 3307:3307 --restart always --name="mariadb-server" -v /share/DockerData/mariadb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=claveroot mariadb:latest

Hay un parámetro que nos va ser interesante para poder mantener datos, aunque eliminemos el contenedor.
Para ello previamente he creado una carpeta compartida llamada "DockerData" donde los contenedores dejarán ciertos datos.
El parámetro es  "-v /share/DockerData/mariadb:/var/lib/mysql" y lo que hace es asociar la ruta real de la estructura de archivos de nuestra nas "/share/DockerData/mariadb" con la del interior de conetenedor "/var/lib/mysql"
Esto último es importante porque así los datos son persistentes y fácilmente podemos hacer copias de resguardo de ellos (incluso moverlos de nas).


Con la orden anterior sólo hemos hecho la creación del contenedor, no hay usuarios, ni base de datos a usar.


Si tenemos idea de usarla en combinación de otros "paquetes" como NextCloud, OwnCLoud, Moodle, Pydio,.... a la hora de crear el container podemos indicar esos datos.

Por ejemplo, si vamos a usar NextCloud, yo suelo hacer las BBDD con el mismo nombre del programa mas "_db" quedando "nextcloud_db", hago un usuario exclusivo para ese programa "nextcloud" y una contraseña exclusiva para él "miclaveNext"

El comando quedaría :
Código:
docker run -d -p 3307:3307 --restart always --name="mariadb-server" -v /share/DockerData/mariadb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=claveroot -e MYSQL_USER=nextcloud -e MYSQL_PASSWORD=miclaveNext -e MYSQL_DATABASE=nextcloud_db mariadb:latest

Si no lo queremos hacer así, podemos acceder a la consola de la MariaDB y por ordenes SQL crear la base de datos, el usuario y su clave. 
O también podemos hacerlo usando PhpMyAdmin, el cual habremos instalado previamente desde el "App Center".

Yo personalmente para organizar en la red este contenedor y los próximos que haga he creado una red llamada "miscontenedores"
Esto hay que hacerlo previo a la creación del contenedor (no es del todo cierto porque se pueden mover de redes por comandos, pero no quiero complicaros)

La orden es sencilla y de nuevo la haremos desde la consola:
Código:
docker network create miscontenedores

Si quisiéramos asignar un rango de red privado y que coincida con alguno de los existentes por ejemplo 172.17.5.x , el comando sería
Código:
docker network create --subnet=172.17.5.0/12 miscontenedores


Así luego añado un parámetro más en la cadena de creación del contenedor y finalmente quedaría así:
Código:
docker run -d -p 3307:3307 --network=miscontenedores --restart always --name="mariadb-server" -v /share/DockerData/mariadb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=claveroot -e MYSQL_USER=nextcloud -e MYSQL_PASSWORD=miclaveNext -e MYSQL_DATABASE=nextcloud_db mariadb:latest

Si quisieramos que ese contenedor tenga una ip marcada por nosotros como la 172.16.5.6 , el comando será:
Código:
docker run -d -p 3307:3307 --ip 172.17.5.6 --network=miscontenedores --restart always --name="mariadb-server" -v /share/DockerData/mariadb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=claveroot -e MYSQL_USER=nextcloud -e MYSQL_PASSWORD=miclaveNext -e MYSQL_DATABASE=nextcloud_db mariadb:latest


Si queremos borrar un contenedor para volver a definirlo habremos de ejecutar la orden "docker rm nombre_de_contenedor"
En nuestro caso sería
Código:
docker rm mariadb-server

Si queréis acceder a la consola de esa máquina ejecutamos desde la consola de la nas el comando
Código:
docker exec -it mariadb-server /bin/bash

Los parámetros de creación del docker, los sacamos de la información que nos suministran en la web de docker

Como veis hay un mundo en esto de los contenedores  Smile

Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny y TS-453Be)
Responder




Usuarios navegando en este tema: 1 invitado(s)