LINUX

Comandos de red básicos con contenedores Docker

Hola a todos, hoy aprenderemos algunas redes básicas con Docker Containers. Docker es un proyecto de código abierto que proporciona una plataforma abierta para empaquetar, enviar y ejecutar cualquier aplicación como un contenedor liviano. No tiene límites de compatibilidad con idiomas, marcos o sistema de empaquetado y se puede ejecutar en cualquier lugar y en cualquier momento, desde pequeñas computadoras domésticas hasta servidores de alta gama. Los convierte en grandes bloques de construcción para implementar y escalar aplicaciones web, bases de datos y servicios de back-end sin depender de una pila o proveedor en particular. Docker está diseñado para redes, ya que se usa gradualmente en centros de datos, ISP y muchos más servidores en red.

Entonces, aquí hay algunos comandos de red básicos que puede usar para administrar Docker Containers.

1. Encontrar la interfaz de Docker

Docker crea de forma predeterminada una interfaz puente llamada docker0 que básicamente se conecta con el mundo exterior. Los contenedores de la ventana acoplable que se ejecutan están conectados directamente con la interfaz de puente docker0. De forma predeterminada, Docker asigna la dirección IP 172.17.42.1/16 a la interfaz de puente docker0, que actúa como una subred para todas las direcciones IP de los contenedores en ejecución. Es bastante fácil obtener la dirección IP de la interfaz de Docker. Para conocer nuestra interfaz de puente docker0 y los contenedores de docker conectados con el puente, simplemente podemos ejecutar un comando ip dentro de una terminal o un shell donde está instalado Docker.

# ip a

Interfaz de Docker

2. Obtener la dirección IP del contenedor de Docker

Como leímos anteriormente, Docker crea una interfaz puente llamada docker0 en la máquina host. A medida que creamos un nuevo contenedor de ventana acoplable, se le asigna automáticamente una nueva dirección IP dinámica de forma predeterminada, que se sigue dentro del rango de subred de la interfaz. Entonces, para verificar la dirección IP del contenedor Docker en ejecución, tendremos que ingresar a un contenedor en ejecución y verificar la dirección IP como se muestra a continuación. Primero, ejecutaremos un nuevo contenedor y entraremos en el contenedor. Si ya tiene un contenedor en ejecución, puede omitir el primer comando a continuación.

# docker run -it ubuntu

Ahora, podremos ejecutar ip a para obtener la dirección IP del contenedor en ejecución.

# ip a

IP del contenedor de Docker

3. Asignación del puerto de exposición

Para mapear el puerto expuesto configurado en el Dockerfile para el contenedor al puerto alto, simplemente necesitaremos seguir el comando de la ventana acoplable con el indicador -P. Esto abrirá el puerto aleatorio del contenedor Docker al puerto definido por el Dockerfile. Entonces, aquí hay un ejemplo del uso de la bandera -P para abrir / exponer el puerto definido.

# docker run -itd -P httpd

Mapeo del puerto de exposición

El comando anterior asignará el puerto del contenedor al puerto 80 como se define en el Dockerfile de httpd. Podemos verificar el puerto expuesto viendo el contenedor en ejecución usando el siguiente comando.

# docker ps

Y puede usar curl para verificar ejecutando el siguiente comando.

# curl http://localhost:49153

Puerto expuesto curl

4. Asignación al puerto específico

También podemos asignar el puerto de exposición o el puerto del contenedor de la ventana acoplable al puerto que especificamos o definimos. Para mapear el contenedor a un puerto específico de nuestra elección, necesitaremos definir el puerto de nuestro deseo con la bandera -p. Aquí hay un ejemplo de cómo podemos hacer eso.

# docker run -itd -p 8080:80 httpd

El comando anterior mapeará el puerto 8080 al puerto 80. Podemos verificarlo ejecutando curl en ese puerto.

# curl http://localhost:8080

Mapeo de puertos específicos

5. Creación de su propio puente

Para asignar una dirección IP personalizada a los contenedores, necesitaremos crear una nueva interfaz puente llamada bro en este tutorial. Para asignar una dirección IP deseada, necesitaremos ejecutar el siguiente comando en la máquina host que ejecuta la ventana acoplable.

# stop docker.io
# ip link add br0 type bridge
# ip addr add 172.30.1.1/20 dev br0
# ip link set br0 up
# docker -d -b br0

Crear interfaz puente

Después de crear el puente de la ventana acoplable, queremos que Docker Daemon lo sepa.

# echo 'DOCKER_OPTS="-b=br0"' >> /etc/default/docker
# service docker.io start

Agregar interfaz a Docker

En este caso, la interfaz en puente distribuirá los contenedores de la ventana acoplable con la dirección IP seguida de la subred IP del puente.

6. Vinculación de un contenedor a otro

Podemos conectar un contenedor con el otro contenedor con Docker. Podemos ejecutar diferentes aplicaciones en diferentes contenedores y conectarnos o vincularnos entre sí. Los enlaces permiten que los contenedores se conecten entre sí y transfieran de forma segura información sobre un contenedor a otro contenedor. Para hacerlo, usaremos la bandera –link. Primero, usaremos flag –name para que sea fácil denotar la imagen de entrenamiento / postgres.

# docker run -d --name db training/postgres

Ejecutando db Container

Una vez hecho esto, enlazaremos training / webapp con el contenedor db que creamos anteriormente formando un nuevo contenedor llamado web.

# docker run -d -P --name web --link db:db training/webapp python app.py

uniendo dos contenedores

Conclusión

Trabajar en red con Docker es divertido y sorprendente porque hay muchas cosas que podemos hacer con Docker Containers. Estos fueron algunos comandos de red sencillos y básicos que podemos jugar con Docker. La conexión en red con Docker es realmente avanzada. Podemos hacer muchas cosas con él. Si tiene preguntas, sugerencias o comentarios, escríbalos en el cuadro de comentarios a continuación para que podamos mejorar o actualizar nuestros contenidos. Gracias ! Disfrutar 🙂

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar