20-05-2020, 04:25 PM
(This post was last modified: 22-05-2020, 03:27 PM by Ganekogorta.)
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:
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 :
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:
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
Así luego añado un parámetro más en la cadena de creación del contenedor y finalmente quedaría así:
Si quisieramos que ese contenedor tenga una ip marcada por nosotros como la 172.16.5.6 , el comando será:
Si queremos borrar un contenedor para volver a definirlo habremos de ejecutar la orden "docker rm nombre_de_contenedor"
En nuestro caso sería
Si queréis acceder a la consola de esa máquina ejecutamos desde la consola de la nas el comando
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
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:
Code:
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 :
Code:
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:
Code:
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
Code:
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í:
Code:
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á:
Code:
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
Code:
docker rm mariadb-server
Si queréis acceder a la consola de esa máquina ejecutamos desde la consola de la nas el comando
Code:
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
Un saludo
Agur eta ondo ibili
Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
Agur eta ondo ibili
Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η