piapia123
es

Planificador del pool de direcciones del demonio de Docker

Web

Todo se ejecuta en tu navegador: no se sube nada

Resultado

Planifica cómo reparte Docker las direcciones: cuán grande es la subred de cada red personalizada, cuántas crear y de qué pool se recortan. La salida es un fragmento que puedes pegar directamente en `/etc/docker/daemon.json` más una lista de subredes por red, con su número de direcciones usables, cuántos contenedores caben y la primera y la última dirección usable. ⚠️ ¿No sabes de qué tamaño debería ser la subred? Pon «Tamaño de subred» en Automático e indica cuántos contenedores por red; la herramienta elige la subred más pequeña que aún cabe. ⚠️ Cada subred tiene que ceder su dirección de red y su dirección de difusión, y un puente de Docker toma una más como puerta de enlace, así que un /24 alberga 253 contenedores y no 256 — Automático ya tiene en cuenta las tres. ⚠️ La mitad más importante es la comprobación de conflictos — Docker ya ocupa varios rangos (docker0 viene con 172.17.0.0/16, el pool por defecto cubre 172.16.0.0/12 y las redes de puente empiezan en 172.18.0.0/16), y un pool que caiga dentro de ellos choca con la configuración de fábrica. Se compara cada rango, y también las subredes entre sí. Cuando no cabe (una subred mayor que el pool, o más redes de las que el pool rinde) el error dice cuánto tiene que medir el prefijo y qué red falla. ¿Necesitas la conversión compose ↔ docker run? Es otra herramienta («Compose ↔ docker run»). Todo se ejecuta en tu navegador; la configuración generada no se sube nunca.

Funciones

  • Genera un fragmento listo para pegar en /etc/docker/daemon.json
  • El tamaño de subred puede ser Automático: elige el prefijo más pequeño que cabe para los contenedores por red (dirección de red, difusión y puerta de enlace del puente ya descontadas)
  • Lista qué subred recibe cada red, en orden del pool, con direcciones usables, capacidad de contenedores y primera/última dirección usable
  • Comprueba el solapamiento con docker0, el pool por defecto y el valor por defecto del puente, y las subredes entre sí
  • Opcionalmente incluye bip (la dirección del puente docker0)
  • Señala la dirección de red canónica cuando base lleva bits de host
  • ⚠️ Errores claros cuando no cabe: una subred mayor que el pool indica el prefijo que necesitas, y demasiadas redes indica cuál falla y hasta dónde debe ampliarse base
  • Todo local, así que la configuración no sale de tu navegador

Cómo se usa

  1. Elige el tamaño de subred por red (Automático, o de /16 a /28)
  2. Con Automático, introduce los contenedores por red; si no, sáltalo
  3. Indica cuántas redes crear y la base del pool
  4. Marca bip si también quieres el ajuste del puente docker0
  5. Copia el fragmento de daemon.json o revisa la lista de subredes (usa la otra herramienta para la conversión compose ↔ docker run)

Preguntas frecuentes

¿No sabes de qué tamaño debería ser la subred? Usa Automático
Pon «Tamaño de subred» en Automático e indica los contenedores por red; la herramienta elige el prefijo más pequeño que cabe. ⚠️ La aritmética no es simplemente redondear el número de contenedores a una potencia de dos: cada subred cede su dirección de red y su dirección de difusión, y un puente de Docker toma una más como puerta de enlace, así que la capacidad es 2^(32 − prefijo) − 3. Un /24 alberga 253 contenedores y no 256, así que 254 contenedores necesitan un /23. ⚠️ El prefijo automático nunca pasa de /30 — Docker rechaza /31 y /32 como tamaño de pool.
¿Qué diferencia hay entre default-address-pools y bip?
bip fija la dirección del puente por defecto docker0 (172.17.0.1/16 de fábrica), mientras que default-address-pools controla de dónde se recortan las redes de puente definidas por el usuario que crea `docker network create` y de qué tamaño son. Los dos no deben solaparse, y Docker lo comprueba al arrancar.
¿Por qué base /16 con tamaño /28 no es un error?
Porque recortar subredes /28 de un pool /16 es perfectamente válido (hasta 4096); el ejemplo oficial usa base /16 con tamaño /24. El caso realmente malo es el contrario: un prefijo de tamaño menor que base (una subred mayor que el pool), o un número de redes que supera lo que el pool puede rendir. Esta herramienta da error en esos casos y solo avisa de miles de subredes.
¿Por qué el 172.17.0.0/16 por defecto informa de un conflicto?
Porque es exactamente el rango que ocupa docker0 de fábrica, y además queda dentro del pool por defecto de Docker, 172.16.0.0/12. Para evitarlo, elige una base dentro de 10.0.0.0/8, por ejemplo 10.201.0.0/16.

Herramientas relacionadas