Docker

Docker es como Esteban despliega todos sus servicios self-hosted en vm-playground: cada uno vive en su propio contenedor con docker-compose.yml.

El patrón network_mode: host

Se repite en los tres servicios de este host, siempre por el mismo motivo: un contenedor en la red bridge por default de Docker no puede llegar a un servicio bindeado en 127.0.0.1 o en la IP de NetBird del propio host (hairpin NAT no soportado entre redes de Docker). La solución adoptada las tres veces fue network_mode: host en vez de exponer nada en 0.0.0.0:

  • El hub de Glances necesita alcanzar su propio agente en la IP de NetBird del host.
  • Wasquedul necesita alcanzar Ollama en 127.0.0.1:11434 del host.
  • Trilium necesita alcanzar un servicio bindeado en localhost del propio host.

Ninguno de los tres expone puertos entrantes propios, así que network_mode: host no amplía la superficie de ataque.

Véase también

  • Glances — un caso de uso del patrón
  • Wasquedul — otro caso de uso
  • Trilium — ídem
  • NetBird — la razón por la que estos contenedores necesitan llegar a una IP de NetBird del propio host