Redes en docker


En este contenido vamos a dar la introducción de los distintos tipos de redes que nos ofrece docker y los distintos métodos de conexió

oscar Escrito por oscar 01 November 2021 1514 0

Contenido

Acerca del proyecto

En este contenido vamos a dar la introducción de los distintos tipos de redes que nos ofrece docker y los distintos métodos de conexión o enlazado entre contenedores que tenemos a nuestra disposición

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
Introducción docker Iniciamos con docker, donde conoceremos los temas que vamos a trabajar en este curso, aprenderemos a usar este gestor de contenedores con todas sus funcionalidades, ademas realizaremos ejercicios prácticos para reforzar el conocimiento aprendido.
¿Qué es docker? ¿Qué es docker?, es una plataforma que permite crear e implementar aplicaciones rápidamente. En este post aprenderás a detalle la definición, sus características y la diferencia con las tecnologías de aplicaciones tradicionales.
¿Qué es un contenedor? ¿Qué es un contenedor de docker?, lo podemos definir como una forma de limitar los recursos para una aplicación, donde solo va a contener sus librerías, configuraciones, entre otros. En este post explicamos a detalle los contenedores.
¿Qué es una imagen en docker? ¿Qué es una imagen en docker?, es un archivo compuesto por múltiples capas, que se utiliza para ejecutar código en un contenedor de docker. En este post aprenderás la definición y como usar las imagenes para crear contenedores.
Ciclo de vida del contenedor docker Aprenderás el ciclo de vida del contenedor en docker y los comandos básicos para poder ejecutar acciones sobre un contenedor. Estos comandos son utilizados en todo el ciclo de vida del contenedor y permiten realizar diferentes acciones para cada estados que puede tener el contenedor.
Docker comandos básicos Vamos a ver los comandos con los que podemos crear, gestionar e ingresar a la terminal bash de un contenedor, estos comandos son útiles y necesarios para poder realizar los ejemplos que tiene este curso, así que es muy importante que los aprendas.

Mapeo de puertos

Cuando iniciamos con docker los primeros ejercicios son desplegar contenedores en la máquina local, donde nos conectamos a ellos por medio de la terminal sh o bash, dependiendo de la configuración de la imagen.

En alguna ocasión usamos la instrucción –-publish (acortado -p) para crear una asociación entre los puerto locales de la maquina huesped con los puertos del contenedor que se crea. Veamos un ejemplo:[1]

docker run -d --publish 9090:80 nginx

La instrucción anterior crea un contenedor con la imagen nginx, adicionalmente publicará la IP local con el mapeo del puerto 9090 conectado al puerto 80 del contenedor, al acceder en el navegador desde la siguiente url http://localhost:9090/ podemos observar la pantalla de bienvenida de nginx.

Con el ejemplo anterior teniamos el conocimiento suficiente para ver alguna web usando los contenedores docker, pero no es el conocimiento suficiente, ademas no nos indica el manejo de redes ni como distribuir la carga.

Controlador de redes

El subsistema de red de Docker se puede conectar mediante controladores. Existen varios controladores de forma predeterminada y proporcionan la funcionalidad de red principal:

Bridge

El controlador de red predeterminado. Si no especifica un controlador, este es el tipo de red que está creando. Las redes puente se utilizan generalmente cuando sus aplicaciones se ejecutan en contenedores independientes que necesitan comunicarse.

Host

Para contenedores independientes, elimine el aislamiento de red entre el contenedor y el host de Docker, y use la red del host directamente.

Overlay

Las redes superpuestas conectan varios demonios de Docker y permiten que los servicios de enjambre se comuniquen entre sí. También puede utilizar redes superpuestas para facilitar la comunicación entre un servicio de enjambre y un contenedor independiente, o entre dos contenedores independientes en diferentes demonios de Docker. Esta estrategia elimina la necesidad de realizar un enrutamiento a nivel de sistema operativo entre estos contenedores.

Macvlan

Las redes Macvlan le permiten asignar una dirección MAC a un contenedor, haciéndolo aparecer como un dispositivo físico en su red. El demonio de Docker enruta el tráfico a los contenedores por sus direcciones MAC. El uso del macvlan controlador es a veces la mejor opción cuando se trata de aplicaciones heredadas que esperan conectarse directamente a la red física, en lugar de enrutarse a través de la pila de red del host de Docker.

None

Para este contenedor, desactive todas las redes. Usualmente se usa junto con un controlador de red personalizado. noneno está disponible para servicios de enjambre.

Resumen del controlador de red

  • Las redes de puente definidas por el usuario son mejores cuando necesita varios contenedores para comunicarse en el mismo host de Docker.
  • Las redes de host son mejores cuando la pila de red no debe aislarse del host de Docker, pero desea que otros aspectos del contenedor estén aislados.
  • Las redes superpuestas son mejores cuando necesita contenedores que se ejecutan en diferentes hosts de Docker para comunicarse, o cuando varias aplicaciones trabajan juntas usando servicios de enjambre.
  • Las redes Macvlan son mejores cuando está migrando desde una configuración de VM o necesita que sus contenedores se vean como hosts físicos en su red, cada uno con una dirección MAC única.
  • Los complementos de red de terceros le permiten integrar Docker con pilas de red especializadas.

Referencias

[1] docker network https://docs.docker.com/network/, Consultado Octubre 2021


Comentario

Debe aceptar antes de enviar