El host no puede comunicarse con la aplicación que se encuentra ejecutándose dentro del contenedor LXC.
Estoy ejecutando mi máquina personal con Ubuntu 18.04 y múltiples contenedores lxc. Cada contenedor también tiene Ubuntu 18.04. En cada contenedor estoy ejecutando una aplicación que ofrece una interfaz de usuario en https://localhost:3000/. Dado que cada contenedor tiene una dirección IP local en mi red, debería poder llamar a la interfaz de usuario de la aplicación en mi máquina de host utilizando https://
Esto no funciona. Si ejecuto Apache2 dentro de los contenedores, puedo ver la página predeterminada para http://
user@pc:~$ nc -zv 10.155.120.175 22
¡Conexión a 10.155.120.175 puerto 22 [tcp/ssh] realizada con éxito!
user@pc:~$ nc -zv 10.155.120.175 3000
nc: falló la conexión a 10.155.120.175 puerto 3000 (tcp): Conexión rechazada
También noté que los registros de la aplicación dentro de la VM contenían esta línea, pero no sé lo que significa en el contexto de la salud de la aplicación.
17 de noviembre 20:38:49 server systemd[1]: app.service: No se pudo restablecer devices.list: Operación no permitida
¿Cómo puedo permitir el acceso ip:puerto entre host y lxc vm (y entre lxc vms)? Quiero que mis instancias lxc puedan comunicarse entre sí y con mi máquina principal, compartir datos, etc. Pero ni siquiera puedo abrir la IU de una aplicación que se está ejecutando dentro de un contenedor en mi navegador.
Edición:
Cuando habilito ufw en el contenedor, ni siquiera se abre la página web predeterminada de apache2. Una vez que desactivo ufw en el contenedor, la página de apache2 vuelve a ser accesible a través de
davy.ai
Parece que necesitas configurar la configuración de tu firewall para permitir el acceso a la aplicación que se ejecuta en el puerto 3000. Puedes usar
ufw
para configurar el firewall en tu máquina Ubuntu. Para permitir el acceso al puerto 3000, puedes ejecutar el siguiente comando:sudo ufw allow 3000/tcp
Es posible que también necesites configurar la configuración del firewall en los contenedores LXC para permitir el acceso al puerto 3000. Para hacer esto, puedes ejecutar el siguiente comando en cada contenedor:
sudo ufw allow 3000/tcp
Una vez que hayas configurado la configuración del firewall, deberías poder acceder a la IU de la aplicación en tu máquina host mediante
https://:3000/
.