Introducción a Docker Networking: flujo de trabajo, conceptos básicos de redes, comandos de redes
Publicado: 2020-04-30Tabla de contenido
Introducción
En esta era de virtualización, los administradores de red ya no trabajan solo en componentes de red tradicionales, como enrutadores, componentes LAN/WAN y conmutadores. Tienen que trabajar en componentes de red en plataformas de virtualización. Toda la industria de TI está interesada en el concepto de contenerización, donde las habilidades de redes sólidas son esenciales.
Como Docker es uno de los software de creación de contenedores más utilizados, las habilidades de red de Docker son importantes para configurar un contenedor. En la actualidad, más de 12 000 empresas utilizan contenedores Docker para enviar sus aplicaciones . Estas empresas incluyen JPMorgan Chase, ThoughtWorks y Neudesic.
En este artículo, aprenderemos sobre la introducción a Docker, los conceptos básicos de las redes de Docker .
Primero comprendamos los fundamentos de Docker.
¿Qué es Docker?
Docker es una plataforma de empaquetado de software que introdujo el concepto de contenerización. La contenedorización es el proceso mediante el cual una aplicación de software se empaqueta con todas sus dependencias requeridas, como bibliotecas, módulos y sistema operativo. Esto hace que el software sea fácilmente ejecutable en cualquier entorno.
Estos paquetes de software se denominan contenedores Docker . Estos contenedores se utilizan para implementar la aplicación en un entorno específico. Puede ser un contenedor Ubuntu, un contenedor CentOS, un contenedor Tomcat-Ubuntu o un contenedor CakePHP.

Digamos que una aplicación Java se crea para ser ejecutada en un entorno que tenga instalado un servidor Tomcat. Después del desarrollo, la aplicación se envía a prueba. Los evaluadores deben configurar el servidor Tomcat nuevamente para ejecutar la aplicación. Luego, se enviará al entorno de producción, que nuevamente requerirá que se configure el mismo entorno.
Pero, un contenedor Docker que ya tenga el entorno resolverá el problema de comenzar desde cero. Por lo tanto, los desarrolladores, probadores y miembros de la unidad de producción pueden ejecutar la aplicación sin configurar el servidor Tomcat una y otra vez.
Leer: Ideas y temas de proyectos de Docker
Flujo de trabajo de la ventana acoplable
El código de la aplicación o del proyecto se escribe en un archivo Docker . Este archivo contiene los requisitos y las dependencias de la aplicación. Este archivo produce una imagen de Docker que se usa más adelante para ejecutar el código en el archivo.
Una imagen contiene el código, las variables de entorno, los archivos de configuración, el tiempo de ejecución y las bibliotecas necesarias para ejecutar la aplicación. Luego, las imágenes se cargan en Docker Hub , que es un repositorio GIT que consta de imágenes de Docker. Desde estos repositorios, puede obtener y cargar sus propias imágenes de Docker.
Los miembros del equipo de control de calidad o del equipo de producción de una empresa obtienen las imágenes para desarrollar sus envases. Como todos estos contenedores pueden estar aislados entre sí, la red Docker es el conjunto de reglas por las que interactúan entre sí.
Ahora que tiene una comprensión básica de Docker , echemos un vistazo más de cerca a las redes de Docker .
Lea también: Salario Docker en India
Conceptos básicos de red de Docker
Cuando Docker se instala inicialmente, se configuran tres redes Docker diferentes: ninguna, host y puente. none y host son componentes importantes de la pila de Docker y no se pueden eliminar. La red puente se puede configurar, conocida como la red docker0.
Docker se puede utilizar para crear muchas redes. Puede agregar contenedores a más de una red. Un contenedor que está conectado a varias redes puede conectarse con los contenedores de estas redes.
Los principales controladores de red utilizados en Docker son los siguientes:
Puente
Esta es la red privada predeterminada creada en el host por Docker. Esta red crea automáticamente una subred IP y una puerta de enlace. Los contenedores que pertenecen a esta red son parte de la misma subred. Entonces, los contenedores en esta red se comunican a través del direccionamiento IP.
Los controladores de red puente son muy útiles cuando la aplicación se ejecuta en un contenedor independiente. Las instalaciones de Docker representan docker0 de forma predeterminada. Docker devolverá el objeto JSON que describirá la red del puente si escribe el siguiente comando en la consola:

puente de inspección de red docker
Anfitrión
El controlador Host se utiliza para contenedores independientes . Si se usa el modo de red de host para un contenedor, se elimina el aislamiento entre el host de Docker y la pila de red. El contenedor no obtiene una dirección IP asignada.
Por ejemplo, se ejecuta un contenedor que se vincula al puerto 80 y se utiliza la red de host. En este caso, la aplicación del contenedor estará disponible en el puerto 80 de la dirección IP del host. Este modo de red es útil cuando un contenedor maneja una gran cantidad de puertos.
Además, el controlador de host le permite ejecutar varios contenedores web en el mismo host único.
Ninguna
En este tipo de red, los contenedores no tienen acceso a redes externas y no están conectados a otros contenedores o redes. Ninguno se usa cuando desea deshabilitar la pila de red en un contenedor en particular.
Ninguno solo tiene una interfaz de bucle invertido, lo que significa que no hay interfaces de red externas.
Cubrir
Esto se usa para crear una red privada interna que abarca todos los nodos del clúster de enjambre. Una red Docker Swarm es un grupo de máquinas virtuales o físicas que ejecutan la aplicación Docker. Este controlador de red es importante en las redes de Docker, ya que permite la comunicación entre el contenedor independiente y el servicio de enjambre.
Los contenedores independientes en diferentes demonios Docker también pueden interactuar con este controlador. Por lo tanto, no tiene que realizar un enrutamiento a nivel de sistema operativo para los contenedores.
Macvlan
Esta red le permite asignar una dirección MAC a un contenedor. Esto hace que aparezca como un dispositivo físico. Usando esta dirección, el demonio Docker enruta el tráfico a un enrutador en particular. Un demonio Docker es un servidor que se ejecuta en el sistema operativo host e interactúa con él para realizar diferentes actividades. Una red Macvlan simplifica la comunicación entre contenedores.
Macvlan es una buena opción cuando se manejan aplicaciones heredadas que se espera que estén conectadas a la red física. Si establece una red Macvlan, puede estar en dos modos: modo puente o modo puente troncal 802.1q.
Complementos de red
Puede usar un complemento de red de terceros con Docker. Estos complementos están disponibles en Docker Hub y se pueden obtener a través de proveedores externos.
Comandos de red de Docker
Los comandos de red de Docker más comunes son los siguientes:
Lista de redes de Docker
Este código enumerará todas las redes de Docker en el host:
red acoplable ls
Creación de una red Docker
El siguiente comando lo ayudará a crear una red antes de lanzar un contenedor:
docker network create –-driver nombre del controlador nombre
Aquí, drivername es el nombre que se le da al controlador de red y Lista de comandos de red
Este comando se utiliza para enumerar los comandos de red disponibles:
ayuda de la red docker
Quitar una red
El comando rm se puede usar para eliminar una red.
ventana acoplable red rm mynetwork
Conexión a una red Docker
Cuando crea una red Docker, por defecto está conectada a la red puente. El siguiente comando se puede usar para conectarse a otra red cuando ejecuta el contenedor:
ejecución del contenedor docker -it –net=mynetwork nginx
Obtención de puertos de contenedores

Puede obtener el puerto del contenedor usando el comando port:
puerto acoplable cotainer_name/id
Conclusión
Docker es un aspecto crucial del desarrollo de software en estos días. A medida que más y más empresas avanzan hacia la contenedorización, la creación de redes es importante para aislar los contenedores. Esto permite el desarrollo de aplicaciones web que funcionan juntas de forma segura. Estas redes ayudan en una mejor comunicación entre los contenedores.
Docker ha ayudado a muchas empresas a mejorar su tiempo de implementación y reducir los costos asociados con él. Por lo tanto, si es un principiante, este artículo será útil para entender los conceptos básicos de las redes docker .
Si está interesado en obtener más información sobre el desarrollo de pila completa, consulte el Diploma PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, más de 9 proyectos y asignaciones, IIIT -Estado de ex-alumno B, proyectos finales prácticos prácticos y asistencia laboral con las mejores empresas.