1.1 Controlador de red Bridge
Los controladores de red de Docker permiten que los contenedores interactúen entre sí y con redes externas. Docker proporciona varios controladores de red, cada uno con sus propias características y diseñado para escenarios de uso específicos. En esta lección, vamos a revisar cuatro controladores de red principales: bridge, host, none y overlay.
El controlador de red bridge es el controlador de red por defecto en Docker. Crea una red interna privada en la que los contenedores pueden comunicarse entre sí. Esta red está aislada de la red externa del host.
Características:
- Los contenedores conectados a la red
bridgepueden interactuar entre sí mediante direcciones IP. - Las redes externas no pueden interactuar directamente con los contenedores en la red
bridge, a menos que se configure redirección de puertos. - Fácil de usar para escenarios locales de desarrollo y pruebas.
Ejemplo de uso:
Al crear un contenedor sin indicar una red, este se conecta automáticamente a la red bridge.
docker run -d --name my_container nginx
Para configurar la redirección de puertos, se utiliza la bandera -p.
docker run -d -p 8080:80 --name my_container nginx
1.2 Controlador de red Host
El controlador de red host permite que un contenedor use directamente la pila de red de la máquina host. Esto significa que el contenedor tendrá la misma dirección IP que el host y podrá usar todas las interfaces de red del host.
Características:
- Los contenedores que usan el controlador de red
hostfuncionan más rápido debido a la reducción de la sobrecarga en la virtualización de la red. - Los contenedores tienen acceso a las mismas interfaces de red que el host, lo que puede aumentar el riesgo de seguridad.
- Aplicable en escenarios donde se requiere un alto rendimiento de la red o configuraciones de red específicas.
Ejemplo de uso:
docker run -d --network host --name my_container nginx
1.3 Controlador de red None
El controlador de red none desactiva todas las capacidades de red del contenedor. Un contenedor conectado a la red none no tiene interfaz de red, lo que lo aísla completamente de otros contenedores y redes.
Características:
- Aislamiento total del contenedor de todas las redes.
- Útil para contenedores que no necesitan red, por ejemplo, para realizar tareas independientes de la red.
Ejemplo de uso:
docker run -d --network none --name my_container busybox
1.4 Driver de red Overlay
El driver de red overlay se utiliza para crear una red distribuida que abarca varios hosts de Docker. Este driver se usa comúnmente en Docker Swarm o Kubernetes para proporcionar interacción de red entre contenedores en diferentes hosts.
Características:
- Proporciona comunicación entre contenedores en diferentes hosts.
- Requiere una configuración de clustering, como Docker Swarm.
- Permite crear redes virtuales sobre redes existentes, brindando un alto nivel de aislamiento y seguridad.
Ejemplo de uso:
Para usar el driver overlay primero debes crear un clúster de Docker Swarm.
1. Inicialización de Docker Swarm:
docker swarm init
2. Creación de una red overlay:
docker network create -d overlay my_overlay_network
3. Iniciar contenedores conectados a la red overlay:
docker service create --name my_service --network my_overlay_network nginx
1.5 Comparación de controladores de red
Comparación de diferentes controladores de red
| Controlador de red | Aislamiento | Rendimiento | Aplicabilidad | Características |
|---|---|---|---|---|
| bridge | Alta | Moderada | Redes locales | Red aislada por defecto |
| host | Baja | Alta | Rendimiento | Pila de red compartida con el host |
| none | Completa | Máxima | Aislamiento | Aislamiento completo de la red |
| overlay | Alta | Alta | Redes distribuidas | Comunicación entre contenedores en hosts diferentes |
Uso de controladores de red
-
Bridge: utilízalo para aplicaciones locales y pruebas, cuando los contenedores necesitan interactuar entre sí pero deben estar aislados de la red externa. -
Host: úsalo para aplicaciones que requieran alto rendimiento de red o configuraciones de red específicas, cuando el aislamiento de red no sea una prioridad. -
None: úsalo para contenedores completamente aislados que no necesitan interacción en la red. -
Overlay: úsalo para aplicaciones distribuidas que operen en un clúster donde sea necesario habilitar la comunicación entre los contenedores en hosts diferentes.
GO TO FULL VERSION