Redes en Docker: los 6 tipos y cuál necesitas en cada caso

Rubén Castro, actualizado a 10 agosto 2026
docker redes network guia

🛍️ 11.11 de AliExpress: las mayores ofertas del año · del 1 al 18 de noviembre, pedidos a España

  • ESD1103 −3 € desde 18 €
  • ESD1108 −8 € desde 45 €
  • ESD1112 −12 € desde 69 €
  • ESD1123 −23 € desde 135 €
  • ESD1139 −39 € desde 230 €
  • ESD1158 −58 € desde 325 €
  • ESD1175 −75 € desde 429 €
  • ESD11100 −100 € desde 500 €
  • ESD11120 −120 € desde 600 €

Si el carrito no acepta un código ESD11, prueba la variante AEES con el mismo número (AEES03, AEES08… hasta AEES75). ESD11100 y ESD11120 solo valen del 1 al 3 y el 11 y 12 de noviembre.

Pagando con PayPal, además, −9 € desde 99 €, −20 € desde 199 € y −40 € desde 299 €, que sí se suman al código.

Ver las ofertas del 11.11 → Más detalles y ofertas destacadas →

Como ya sabrás, Docker es una de las plataformas de contenedorización más populares y emplea la virtualización a nivel de sistema operativo para agrupar aplicaciones de software y sus dependencias en unidades reutilizables llamadas contenedores.

Estos contenedores Docker pueden funcionar en cualquier ordenador que tenga instalado Docker, ya sea en una máquina local o en un entorno remoto en la nube.

Dentro de Docker, se incorpora un sistema de red para gestionar la comunicación entre:

  • Los contenedores
  • El host
  • Y los sistemas externos

Lógicamente, disponemos de varios tipos de red para adaptarnos a diferentes escenarios. Son seis en concreto, y elegir la incorrecta es la causa de buena parte de los ratos perdidos con Docker: contenedores que no se ven entre sí, puertos que no responden o servicios que se pisan.

Vamos a analizarlos uno a uno, viendo cuándo tiene sentido utilizar cada uno y con qué comandos se manejan. Empezamos avisando de la trampa que más tiempo hace perder: la red que Docker te da hecha y la que creas tú no funcionan igual.

Tipos de Redes Docker

Para que los contenedores tengan conectividad, deben estar vinculados a una red de Docker. Las vías de comunicación de cada contenedor dependen de sus asociaciones de red. Docker ofrece seis controladores de red preconfigurados que sirven como columna vertebral de la funcionalidad de red:

Bridge o puente

Esta es la red por defecto. Cada vez que inicias Docker, se crea una red Bridge y todos los contenedores que se inicien se conectarán automáticamente a ella. Puedes utilizarla siempre que quieras que tus contenedores, que se ejecutan de forma aislada, se conecten y se comuniquen entre sí.

Aquí está el tropiezo que se lleva todo el mundo por delante, y conviene tenerlo claro desde el principio: la red bridge por defecto y una red bridge que creas tú no se comportan igual.

En la red por defecto, los contenedores solo se ven por dirección IP. Si intentas que uno llame a otro por su nombre, el sistema devuelve un bad address y te vuelves loco buscando el fallo donde no está. En cambio, en una red que hayas creado tú, Docker levanta un servidor DNS interno y los contenedores se encuentran por nombre sin que configures nada.

Por eso la recomendación práctica es siempre la misma: crea tu propia red y no uses la de por defecto para nada serio.

Como los contenedores se ejecutan de forma aislada, la red puente resuelve el problema del conflicto de puertos. Si los conceptos de red te bailan, los repasamos en redes y subredes explicadas. Los contenedores que se ejecutan en la misma red puente pueden comunicarse entre sí y Docker utiliza iptables en la máquina anfitriona para evitar el acceso fuera del puente.

Host

Los contenedores que utilizan el modo de red host comparten directamente la pila de red del host sin aislamiento.

La red del contenedor funciona como si estuviese directamente en el host. No recibe direcciones IP independientes, sino que los enlaces de puerto se exponen directamente a la interfaz de red del host. Por consiguiente, un proceso en un contenedor que escuche en el puerto 80 se enlazaría a <su_host_ip>:80.

Al no haber traducción de puertos de por medio, es también la opción más rápida y la que tiene sentido cuando un contenedor necesita abrir muchísimos puertos o escuchar tráfico de la red.

El modo host nació siendo exclusivo de Linux: en Docker Desktop para Mac y Windows sencillamente no funcionaba, ya que ahí los contenedores viven dentro de una máquina virtual y «el host» no es tu ordenador. Desde Docker Desktop 4.34 (2024) ya está disponible en los tres sistemas, pero hay que activarlo a mano en Settings › Resources › Network.

Overlay

Las redes superpuestas comprenden redes distribuidas que se extienden por múltiples hosts Docker, lo que permite que los contenedores se comuniquen entre distintos hosts sin necesidad de contar con soporte de enrutamiento a nivel de sistema operativo.

Aunque se emplean principalmente en clusters Docker Swarm, las redes superpuestas también pueden utilizarse para establecer una comunicación directa entre contenedores en distintas instancias de Docker Engine, lo que permite crear entornos personalizados tipo Swarm.

IPvLAN

IPvLAN funciona como un controlador avanzado que proporciona un control preciso sobre las direcciones IPv4 e IPv6 asignadas a los contenedores, además del etiquetado y el enrutamiento VLAN de capa 2 y 3.

Este controlador resulta especialmente útil para integrar servicios de contenedores en redes físicas existentes, ya que ofrece ventajas de usabilidad frente a las redes basadas en puentes.

MACVLAN

MACVLAN es otra opción sofisticada que permite a los contenedores emular dispositivos físicos en la red mediante la asignación de una dirección MAC única a cada uno. Este tipo de red requiere dedicar una de las interfaces físicas del host a la red virtual. Además, es necesario configurar adecuadamente la infraestructura de red general para admitir la posible afluencia de direcciones MAC provenientes de un host Docker activo que gestione muchos contenedores.

none

Aísla completamente un contenedor tanto del host como de otros contenedores.

¿Qué tipo de red debo utilizar?

Los seis controladores de red de Docker y cuándo tiene sentido cada uno

Tipo de redPara qué sirveCuándo la quieresAislamiento
bridge (la que creas tú)Red privada entre contenedores del mismo hostCasi siempre. Es la respuesta por defectoAlto
bridge por defectoLa que Docker usa si no dices nadaNunca a propósito: no resuelve nombresAlto
hostEl contenedor usa la red del anfitrión tal cualCuando necesitas rendimiento o abrir muchos puertosNinguno
overlayUne contenedores repartidos en varios hostsSwarm o varios servidores hablando entre síAlto
macvlanCada contenedor aparece como un aparato físico con su MACDomótica y captura de tráfico en la LANMedio
ipvlanComo macvlan pero sin MAC propia por contenedorCuando el switch o el router limitan las MACMedio
noneSin red de ningún tipoProcesos de cálculo que no deben salir a InternetTotal

Las redes bridge son la opción más adecuada para la mayoría de los casos, siempre que se trate de una red creada por ti, como mencionábamos anteriormente. Los contenedores que forman parte de ella se comunican entre sí por nombre, sin que sea necesario conocer las direcciones IP, y además tienen acceso a la red de tu host, por lo que pueden conectar con Internet y con tu LAN.

Las redes de host son la mejor opción cuando quieres vincular puertos directamente a las interfaces de tu host y no te preocupa el aislamiento de la red. Estas permiten que las aplicaciones en contenedores funcionen de forma similar a los servicios de red que se ejecutan directamente en el host.

Las redes Overlay son necesarias cuando los contenedores en diferentes hosts Docker necesitan comunicarse directamente entre sí. Estas redes permiten configurar entornos distribuidos propios para lograr una alta disponibilidad.

Las redes Macvlan resultan útiles en situaciones donde los contenedores deben aparecer como un dispositivo físico en la red de tu host, por ejemplo, al ejecutar una aplicación que monitoriza el tráfico de red. Por su parte, las redes IPvLAN son una opción avanzada para casos en los que existen requisitos específicos sobre las direcciones IP, las etiquetas y el enrutamiento de los contenedores.

Los comandos que vas a usar de verdad

Toda la teoría anterior se gestiona con unos pocos comandos. Estos son los que se utilizan el 95 % del tiempo.

Ver qué redes tienes

docker network ls

Aparecerán al menos tres, que Docker crea solo y no debes borrar: bridge (la de por defecto), host y none.

NETWORK ID     NAME      DRIVER    SCOPE
2f259bab93aa   bridge    bridge    local
7c1a0d4e88b2   host      host      local
b30fe9a71c04   none      null      local

Crear la tuya

docker network create mi-red

Si no añades más parámetros, se creará una red bridge, que es lo que necesitas en la inmensa mayoría de los casos. Si necesitas fijar el rango de direcciones:

docker network create --subnet 172.28.0.0/16 mi-red

Arrancar un contenedor dentro de ella

docker run -d --name web --network mi-red -p 8080:80 nginx

Meter o sacar un contenedor que ya está corriendo

docker network connect mi-red web
docker network disconnect mi-red web

Un contenedor puede estar en varias redes a la vez. Esta es la forma limpia de montar, por ejemplo, un servidor web accesible desde el exterior y una base de datos que solo se comunique con él.

Ver qué hay dentro de una red

docker network inspect mi-red

Es el comando que utilizarás cuando algo no conecte: te indica el rango de direcciones, la puerta de enlace y qué contenedores están enchufados, junto con su IP.

Limpiar

docker network rm mi-red
docker network prune

El segundo borra de golpe todas las redes que no esté usando ningún contenedor.

Ten cuidado con prune: elimina cualquier red que no tenga contenedores arrancados en ese momento. Si tienes un docker compose parado, su red también se borrará y, al levantarlo de nuevo, se recreará con un rango de direcciones distinto. Si algo dependía de esas IP, dejará de funcionar.

Y con Docker Compose

Si utilizas Compose, casi nunca tendrás que escribir estos comandos: al levantar el proyecto se crea sola una red bridge propia con el nombre de la carpeta y todos los servicios del fichero se integran en ella. Por este motivo, en un compose.yaml puedes llamar a la base de datos por su nombre de servicio (db, postgres…) sin configurar nada: te encuentras en una red creada por ti y con el DNS interno funcionando.

Es exactamente el mismo comportamiento que el del apartado anterior, solo que Compose te lo da hecho.

Fuentes

  1. docs.docker.com
  2. docs.docker.com
Rubén Castro

Rubén Castro

Redactor

Apasionado de explorar y diseccionar lo último en tecnología. Tengo mucha experiencia en el mundo de los ordenadores y el gaming, aunque también me gustan todos los tipos de gadgets.