29-03-2026, 10:53 PM
(This post was last modified: Yesterday, 08:30 AM by Ganekogorta.)
Hola
Voy a tratar de describir como trasladar un docker de Nginx Proxy Manager que usa MariaDB a otra máquina.
A la inversa sería muy similar ya que a fin de cuentas estamos trasladando dockers
El este caso lo voy a hacer a una NAS que no es de Qnap.
Lo que quiero que se vea que el traslado de dockers es "casi" independiente del tipo de Nas o máquina empleada.
Los pasos generales serían los siguientes:
1-backup de la base de datos de MariaDB con PhpMyAdmin desde la máquina QNAP.
2-activacion de MariaDB en la máquina destino si es que no lo tiene instalado.
3-restauracion de la base de datos.
4-despliegue del docker adaptándolo rutas a las de la máquina nueva.
5-cambios en nuestro router para que los puertos 443 y 80 externos a nuestra red, lleguen al nuevo docker de Nginx.
1-backup de la base de datos de MariaDB con PhpMyAdmin
Abrimos la aplicación web PhpMyAdmin.
Dependiendo de nuestra instalación podemos tener instalada en nuestra nas la BBDD en MariaDB 5, MariaDB10 o incluso tener las dos simultáneamente.
Lanzamos PhPMyAdmin
Abrimos sesión en la que tenga la BBDD de nuestro Nginx Proxy Manager
En el caso de la imagen se puede observar que puedo seleccionar otros servidores de MariaDB.
Estos servidores NO tiene porque ser de la máquina que hospeda PhpMyAdmin, pueden ser incluso los de otras máquinas.
Lo normal es que sólo tengamos uno y nos permita sólo abrir el que tengamos.
Una vez identificados en PhPMyAdmin veremos la lista de bases de datos que tenemos instaladas.
En nuestro caso la que nos interesa es la de nginx (que se definió durante la creación y arranque del docker de Nginx Proxy Manager)
Seleccionamos la base de datos y vamos a lengüeta de exportar
dejamos el formato SQL y pulsamos en el botón de "Exportar"
Nos generará un archivo con extensión .sql que usaremos mas adelante.
2-activacion de MariaDB en la máquina destino si es que no lo tiene instalado
En este caso voy a trasladarlo a otra nas pero de marca distinta a Qnap, usaré un Terramaster, pero podia haber sido un PC, una UGreen, Synology,... u otra Qnap.
En el caso de Terramaster, no se incluye de serie el gestor PhPMyAdmin.
Viene uno llamado simplemente MariaDB
Que si lo abrimos es Hydra para Adminer.
Este Adminer es un buen gestor web de BBDD similar a PhPMyAdmin que podemos instalar también en nuestra QNAP
Si alguno lo quiere instalar en su QNAP que lance el siguiente comando en la consola para instalar Adminer como Docker usando el puerto 9080
Pero para hacerlo mas "sencilo" y homogéneo usaremos PhPMyAdmin.
Para ello tenemos dos opciones:
Y en mi caso instalé PhpMyAdmin desde el centro de aplicaciones de la Terramaster
Si queremos usarlo desde la QNAP, hemos de editar (con cuidado) el archivo de configuración de PhpMyAdmin "config.inc.php"
En este otro post ya se comentó como hacer este tipo de configuración.
Por ejemplo deberíamos añadir algo "similar" a esto en el archivo "config.inc.php" si nuestra Terramaster tuviese la ip 192.168.88.88
Una vez que tengamos nuestro PhpMyAdmin con acceso a la Terramaster.
Deberemos crear la BBDD vacía con el mismo nombre y el mismo nombre usuario y privilegios sobre esa BBDD que usamos en nuestra QNAP.
Ahora creamos al usuario y usamos la misma clave que se usó en QNAP (si los cambiamos lo haremos también en la creación del docker)
Para crear al usuario lo haremos estando dentro de la base de datos Nginx_db y vamos a la lengüeta de
y tras pulsar al botón de "Go" se crea el usuario con permisos sólo en esa BBDD
tal como muestra la siguiente pantalla de resumen
3-restauracion de la base de datos.
Ahora teniendo seleccionada la BBDD "nginx_db" abrimos la legüeta de importar
Seleccionamos el archivo sql que generamos en el punto 1 y pulsamos al botón inferior de importar.
Si todo ha ido bien, veremos la estructura y datos que teníamos en nuestra QNAP.
En la parte de la derecha podemos ver el número de registros que contiene cada tabla.
4-despliegue del docker adaptándolo rutas a las de la máquina nueva.
Ahora lanzamos la cadena de creación del docker.
Cuando se hizo en la QNAP se lanzó con este comando
Para lanzarlo en Terramaster, debemos adaptar las rutas persistentes al sistema de carpetas de Terramaster
En en caso de la Terramaster, su estructura de archivos no es igual en cuanto a rutas de carpetas compartidas y hay que recordar que tenemos alguna usada como persistente en la definición del docker.
En vez de estar en "/share/" como en QNAP, se ubican en "/VolumeXX/"
También he cambiado el puerto usado por la MariaDB de 3307 en la Qnap al habitual 3306 en la Terramaster. Esto es así ya que en la Qnap teníamos dos MariaDB. La version 5 y la 10, que usaban el 3306 y 3307 respectivamente.
Si todo ha ido bien, abriremos un navegador web y escribiremos "https://ip_nas_terramaster:2081" y se nos presentará la web de gestión de Nginx Proxy Manager.
Introducimos el mismo usuario y clave que usabamos en nuestra anterior Qnap y veremos el mismo contenido que tenemos en la anterio nas.
5-cambios en nuestro router para que los puertos 443 y 80 externos a nuestra red, lleguen al nuevo docker de Nginx.
Ahora, para activarlo, sólo debemos editar las reglas de nuestro cortafuegos para que los puertos 80 y 443 externos, en vez de ser redirigidos a la ip de la QNAP, lo sean al de la Terramaster.
Evidentemente este tipo de traslados tiene sentido cuando hay muchas configuraciones dentro de nuestro nginx que son tediosas de repetir en uno nuevo.
También puede ser útil el hacerlo simplemente para tener una replica de uno por si cayese la máquina que lo aloja y con iniciarlo y reconfigurar las dos reglas del router ya tendríamos de nuevo operativo uno.
Y con esto hemos finalizado.
Si veis alguna errata comentarme por privado para corregirla.
Voy a tratar de describir como trasladar un docker de Nginx Proxy Manager que usa MariaDB a otra máquina.
A la inversa sería muy similar ya que a fin de cuentas estamos trasladando dockers
El este caso lo voy a hacer a una NAS que no es de Qnap.
Lo que quiero que se vea que el traslado de dockers es "casi" independiente del tipo de Nas o máquina empleada.
Los pasos generales serían los siguientes:
1-backup de la base de datos de MariaDB con PhpMyAdmin desde la máquina QNAP.
2-activacion de MariaDB en la máquina destino si es que no lo tiene instalado.
3-restauracion de la base de datos.
4-despliegue del docker adaptándolo rutas a las de la máquina nueva.
5-cambios en nuestro router para que los puertos 443 y 80 externos a nuestra red, lleguen al nuevo docker de Nginx.
1-backup de la base de datos de MariaDB con PhpMyAdmin
Abrimos la aplicación web PhpMyAdmin.
Dependiendo de nuestra instalación podemos tener instalada en nuestra nas la BBDD en MariaDB 5, MariaDB10 o incluso tener las dos simultáneamente.
Lanzamos PhPMyAdmin
Abrimos sesión en la que tenga la BBDD de nuestro Nginx Proxy Manager
En el caso de la imagen se puede observar que puedo seleccionar otros servidores de MariaDB.
Estos servidores NO tiene porque ser de la máquina que hospeda PhpMyAdmin, pueden ser incluso los de otras máquinas.
Lo normal es que sólo tengamos uno y nos permita sólo abrir el que tengamos.
Una vez identificados en PhPMyAdmin veremos la lista de bases de datos que tenemos instaladas.
En nuestro caso la que nos interesa es la de nginx (que se definió durante la creación y arranque del docker de Nginx Proxy Manager)
Seleccionamos la base de datos y vamos a lengüeta de exportar
dejamos el formato SQL y pulsamos en el botón de "Exportar"
Nos generará un archivo con extensión .sql que usaremos mas adelante.
2-activacion de MariaDB en la máquina destino si es que no lo tiene instalado
En este caso voy a trasladarlo a otra nas pero de marca distinta a Qnap, usaré un Terramaster, pero podia haber sido un PC, una UGreen, Synology,... u otra Qnap.
En el caso de Terramaster, no se incluye de serie el gestor PhPMyAdmin.
Viene uno llamado simplemente MariaDB
Que si lo abrimos es Hydra para Adminer.
Este Adminer es un buen gestor web de BBDD similar a PhPMyAdmin que podemos instalar también en nuestra QNAP
Si alguno lo quiere instalar en su QNAP que lance el siguiente comando en la consola para instalar Adminer como Docker usando el puerto 9080
Code:
docker run -d --name=adminer -p 9080:8080 -e ADMINER_DESIGN='price' --restart unless-stopped -e ADMINER_DEFAULT_SERVER=mysql adminerPero para hacerlo mas "sencilo" y homogéneo usaremos PhPMyAdmin.
Para ello tenemos dos opciones:
- instalamos PhPMYAdmin en la Terramaster
- hacemos que nuestra PHPMyAdmin instalala en la QNAP pueda gestionar la MariaDB de la Terramaster
Y en mi caso instalé PhpMyAdmin desde el centro de aplicaciones de la Terramaster
Si queremos usarlo desde la QNAP, hemos de editar (con cuidado) el archivo de configuración de PhpMyAdmin "config.inc.php"
En este otro post ya se comentó como hacer este tipo de configuración.
Por ejemplo deberíamos añadir algo "similar" a esto en el archivo "config.inc.php" si nuestra Terramaster tuviese la ip 192.168.88.88
Code:
/**
* servidor externo
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['verbose'] = 'Terramaster';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '192.168.88.88';
$cfg['Servers'][$i]['Connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
/**
* End of servers configuration
*/Una vez que tengamos nuestro PhpMyAdmin con acceso a la Terramaster.
Deberemos crear la BBDD vacía con el mismo nombre y el mismo nombre usuario y privilegios sobre esa BBDD que usamos en nuestra QNAP.
Ahora creamos al usuario y usamos la misma clave que se usó en QNAP (si los cambiamos lo haremos también en la creación del docker)
Para crear al usuario lo haremos estando dentro de la base de datos Nginx_db y vamos a la lengüeta de
y tras pulsar al botón de "Go" se crea el usuario con permisos sólo en esa BBDD
tal como muestra la siguiente pantalla de resumen
3-restauracion de la base de datos.
Ahora teniendo seleccionada la BBDD "nginx_db" abrimos la legüeta de importar
Seleccionamos el archivo sql que generamos en el punto 1 y pulsamos al botón inferior de importar.
Si todo ha ido bien, veremos la estructura y datos que teníamos en nuestra QNAP.
En la parte de la derecha podemos ver el número de registros que contiene cada tabla.
4-despliegue del docker adaptándolo rutas a las de la máquina nueva.
Ahora lanzamos la cadena de creación del docker.
Cuando se hizo en la QNAP se lanzó con este comando
Code:
docker run -d -p 2080:80 -p 2081:81 -p 2443:443 --restart always --name="nginx" -v /share/DockerData/nginx/data:/data/ -v /share/DockerData/nginx/letsencrypt:/etc/letsencrypt/ -e "DB_MYSQL_HOST=ip_de_nuestra_nas" -e "DB_MYSQL_PORT=3307" -e "DB_MYSQL_USER=usernginx" -e "DB_MYSQL_PASSWORD=claveusernginx" -e "DB_MYSQL_NAME=nginx_db" -e "DISABLE_IPV6=true" jc21/nginx-proxy-manager:latestPara lanzarlo en Terramaster, debemos adaptar las rutas persistentes al sistema de carpetas de Terramaster
Code:
docker run -d -p 2080:80 -p 2081:81 -p 2443:443 --restart always --name="nginx" -v /Volume1/DockerData/nginx/data:/data/ -v /Volume1/DockerData/nginx/letsencrypt:/etc/letsencrypt/ -e "DB_MYSQL_HOST=ip_de_nuestra_nas" -e "DB_MYSQL_PORT=3306" -e "DB_MYSQL_USER=usernginx" -e "DB_MYSQL_PASSWORD=claveusernginx" -e "DB_MYSQL_NAME=nginx_db" -e "DISABLE_IPV6=true" jc21/nginx-proxy-manager:latestEn en caso de la Terramaster, su estructura de archivos no es igual en cuanto a rutas de carpetas compartidas y hay que recordar que tenemos alguna usada como persistente en la definición del docker.
En vez de estar en "/share/" como en QNAP, se ubican en "/VolumeXX/"
También he cambiado el puerto usado por la MariaDB de 3307 en la Qnap al habitual 3306 en la Terramaster. Esto es así ya que en la Qnap teníamos dos MariaDB. La version 5 y la 10, que usaban el 3306 y 3307 respectivamente.
Si todo ha ido bien, abriremos un navegador web y escribiremos "https://ip_nas_terramaster:2081" y se nos presentará la web de gestión de Nginx Proxy Manager.
Introducimos el mismo usuario y clave que usabamos en nuestra anterior Qnap y veremos el mismo contenido que tenemos en la anterio nas.
5-cambios en nuestro router para que los puertos 443 y 80 externos a nuestra red, lleguen al nuevo docker de Nginx.
Ahora, para activarlo, sólo debemos editar las reglas de nuestro cortafuegos para que los puertos 80 y 443 externos, en vez de ser redirigidos a la ip de la QNAP, lo sean al de la Terramaster.
Evidentemente este tipo de traslados tiene sentido cuando hay muchas configuraciones dentro de nuestro nginx que son tediosas de repetir en uno nuevo.
También puede ser útil el hacerlo simplemente para tener una replica de uno por si cayese la máquina que lo aloja y con iniciarlo y reconfigurar las dos reglas del router ya tendríamos de nuevo operativo uno.
Y con esto hemos finalizado.
Si veis alguna errata comentarme por privado para corregirla.
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η

