Actualizado el lunes, 28 noviembre, 2022
Hace poco un usuario nos comentaba que, en su caso, necesitaba correr múltiples instancias de dinaip en una misma máquina, ya que gestionaba diferentes usuarios. Al ver que tú podrías estar en su situación, decidimos preparar un pequeño tutorial de Docker y dinaIP.
Aunque a nivel de diseño dinaIP no permite múltiples instancias, hay un sencillo “hack” que nos deja lanzar todas las que queramos sin problema mediante Docker.
Para quienes no lo conozcáis, en un artículo anterior explico cómo utilizarlo para levantar un servicio web. Para que os hagáis una idea, digamos que es una alternativa más ligera que el uso de máquinas virtuales. Permite ejecutar pequeños (o grandes también) contenedores de software directamente sobre el núcleo de nuestro sistema operativo.
Cuando comenzaba con docker, una de mis primeras creaciones fue un contenedor que permite ejecutar dinaIP, manteniendo las configuraciones. Lo tenéis disponible tanto en Github como en el Docker hub.
Índice de contenidos
Lanza múltiples instancias en dinaIP
El proceso para lanzar múltiples instancias es muy sencillo, puesto que Docker necesita muy poca información:
- Datos de acceso para dinaIP
- Una ruta para guardar las configuraciones
- De forma opcional, un nombre de contenedor (recomendable)
Pasos a seguir:
- Lanzamos el contenedor, configurado para reiniciarse de forma automática si no lo detenemos para cada uno de los usuarios. Por ejemplo:
docker run -d -e DHUSER=usuario1 -e DHPASS=password1 -v ~/persistencia_docker/dinaip/usuario1:/var/persistent --name dinaip-usuario1 --restart unless-stopped vrdominguez/dinaip
docker run -d -e DHUSER=usuario2 -e DHPASS=password2 -v ~/persistencia_docker/dinaip/usuario2:/var/persistent --name dinaip-usuario2 --restart unless-stopped vrdominguez/dinaip
docker exec -ti dinaip-usuario1 dinaip -a midominio.com:subdominio
docker exec -ti dinaip-usuario2 dinaip -a otrodominio.com:otrosu
¡Y listo! Siguiendo estos 2 pasos hemos conseguido tener en la misma máquina dos instancias de dinaIP, con dos usuarios distintos y sin que se “molesten” entre ellas.
A mayores…
Como nota final, si queremos detener dinaIP sin tener que volver a hacer las configuraciones, habría que hacerlo a través de su propio comando. Mediante “Docker stop” se perderían los datos de configuración, debido a como está configurado el contenedor. Para detener los dos contenedores del ejemplo tendríamos que ejecutar los comandos:
docker exec -ti dinaip-usuario1 dinaip -d
docker exec -ti dinaip-usuario2 dinaip -d
NOTA: Con este comando se volverá a iniciar el contenedor de forma automática, tras haber creado una copia de la configuración anterior. Esto es útil para, una vez que tengamos todo configurado, hacer la copia persistente de la configuración y no perderla en caso de un cierre inesperado. Es recomendable hacer esta parada, al menos una vez ya hemos configurado todo (dinaIP con los dominios a monitorizar).
Si queremos parar el contenedor y que no vuelva a iniciarse, podemos hacer la parada anterior, con su consecuente arranque automático (de forma que se guarde la configuración) y, a continuación, detenerlo con el propio Docker:
docker stop dinaip-usuario1
docker stop dinaip-usuario2
En caso de detenerlo así, podemos relanzar el contenedor utilizando “Docker start”:
docker start dinaip-usuario1
docker start dinaip-usuario2
Espero que este pequeño tutorial de Docker y DinaIP te resulte útil. Recuerda que, ante cualquier duda o sugerencia, puedes contactarnos siempre que quieras, por los métodos habituales 🙂
Deja una respuesta