Optimizaci贸n Avanzada en Docker

1

La importancia de Aprender Docker

2

Desbloqueando el Poder de Docker

3

Construcci贸n de Im谩genes Multi-stage

4

Escaneo de im谩genes en Docker

5

Optimizaci贸n de Im谩genes de docker con Distroless

6

Compilaci贸n Multiplataforma

7

Gesti贸n de Cach茅 y Eficiencia en Builds

8

Reducci贸n de Dependencias y Minimizaci贸n de Tama帽o

9

Optimizaci贸n de Build Context y Reducci贸n de Transferencias

10

Explorando Docker Hub

Buenas Pr谩cticas en Docker

11

Uso Eficiente de Capas en Im谩genes Docker

12

Uso de .dockerignore para Optimizaci贸n

13

Eliminaci贸n de Archivos Temporales y Residuos en Docker

14

Agrega usuarios a tu imagen de docker

15

Mejores Pr谩cticas para Construcci贸n de Im谩genes

Instalaci贸n y Configuraci贸n en Entornos Multiplataforma

16

Despliegue de Docker en Azure y Entornos Locales

17

Publicar tu imagen a Container Apps de Azure

Redes Avanzadas y Balanceo de Carga

18

Modelos de Red en Docker

19

Exposici贸n y Publicaci贸n de Puertos en Docker

20

Balanceo de Carga con Docker

Automatizaci贸n de CI/CD

21

Ejecuci贸n de Scripts Multi-line en Docker

22

Automatizaci贸n de CI/CD con Docker

23

Estrategias Avanzadas de CI/CD en Docker

24

Publicando mi imagen de docker a la nube con CI/CD

Orquestaci贸n

25

Retomando Docker Compose

26

Secciones en un archivo Docker Compose

27

Agregando vol煤menes con Docker Compose

28

Secuencia de apagado

29

Introducci贸n a Docker Swarm

30

Replicaci贸n de Stacks con Docker Compose

31

De Docker a la nube

32

Orquestadores de contenedores

33

Costos de Docker

Develop

34

Introducci贸n a los devcontainers

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesi贸n a prueba de IA

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

1 D铆as
14 Hrs
37 Min
38 Seg

Modelos de Red en Docker

18/34
Resources

What network models exist in Docker?

Exploring networks in Docker opens up a world of possibilities, especially for understanding how containers operate. Docker offers five different networking models, but one stands out as the most widely used, while the others are more appropriate for testing. This section breaks down each of these models and their applications.

What is the bridge network model?

The bridge model is the default in Docker and allows communication between containers in a local environment. This model is perfect for internal testing, where you want containers to "talk" without interfering with the outside world.

What is the host model for?

The host model allows containers to use the IP address of the host, simulating a real computer within the network. This model is efficient and resource-intensive, ideal for simulating production environments and detailed network testing.

Why isolate a container?

The isolated network model disconnects a container from the outside world, useful for testing system resilience to communication failures. This allows you to analyze the behavior of the system if one part is not operational, ideal for test environments.

How does the overlay model work?

The overlay model allows containers to communicate with each other, even if they are on different machines. It is crucial in large-scale deployment scenarios and is widely used by orchestrators such as Kubernetes.

What is the MacVLAN model?

MacVLAN assigns a real MAC address to each container, making them look like independent machines to the network. This model is useful for creating environments where each container acts as a standalone entity, providing flexibility for various configurations.

How to establish inter-container communication in Docker?

Establishing communication between containers is an essential aspect when working with Docker, and the bridge model facilitates this process. Here is a practical example of how to set up a personal network for two containers to communicate.

How to create a bridge network?

For this exercise, we start by creating a network with the command:

docker network create mi_red_bridge

This command generates a network identified by a unique set of characters.

How to download and run an Nginx container?

First, we download and run an Nginx container, assigning it to our network:

docker run -d --network my_network_bridge --name web_server nginx:latest

This command deploys Nginx in the background, inside the bridge network.

How to run a client with a Linux terminal?

To interact, we need another container that will act as a client:

docker run -it --network mi_red_bridge --name client alpine:latest /bin/sh

Alpine provides a lightweight terminal to run test commands.

How to establish communication between the containers?

On the client, we install 'curl' to test the communication:

apk add --no-cache curl

Then, we use 'curl' to access the web server:

curl http://servidor_web

This shows the home page of the Nginx server from the client, confirming the communication between both containers via the bridge network.

Recommendations for practicing with networking in Docker

Playing with network configurations in Docker is an excellent way to learn and better understand the behavior of containers in different environments. We encourage you to experiment with all network models to determine which one best suits your projects. This practice not only enriches your knowledge, but also empowers your skills to face real challenges in production environments. Don't stop and keep learning!

Contributions 3

Questions 0

Sort by:

Want to see more contributions, questions and answers from the community?

Docker ofrece varios **modelos de red** que permiten a los contenedores comunicarse entre s铆, con el host y con redes externas. Estos modelos son gestionados a trav茅s del motor de redes de Docker. ### **1. bridge (predeterminada en Docker)** * **Descripci贸n**: Es la red predeterminada que Docker asigna a los contenedores. Se crea autom谩ticamente cuando instalas Docker. * **Uso t铆pico**: Comunicaci贸n entre contenedores en un mismo host de Docker. * **Caracter铆sticas**: * Los contenedores en la red `bridge` pueden comunicarse entre s铆 utilizando IPs privadas. * Puedes mapear puertos del contenedor al host para acceso externo. * **Ejemplo**:docker network create my\_bridge\_network docker run --network my\_bridge\_network my\_image ### **2. host** * **Descripci贸n**: Usa directamente la red del host en lugar de crear una interfaz virtual para los contenedores. * **Uso t铆pico**: Escenarios donde necesitas un alto rendimiento en la red o evitar la sobrecarga de virtualizaci贸n. * **Caracter铆sticas**: * No a铆sla el tr谩fico de red. * El contenedor comparte la pila de red del host, por lo que no tiene su propia direcci贸n IP. * **Ejemplo**:docker run --network host my\_image ### **3. none** * **Descripci贸n**: Desactiva la conectividad de red del contenedor. * **Uso t铆pico**: Cuando quieres contenedores completamente aislados de la red. * **Caracter铆sticas**: * El contenedor no puede comunicarse con otros ni con el host. * **Ejemplo**:docker run --network none my\_image ### **4. overlay** * **Descripci贸n**: Permite la comunicaci贸n entre contenedores en diferentes hosts de Docker. * **Uso t铆pico**: Redes distribuidas en un cl煤ster Docker Swarm o Kubernetes. * **Caracter铆sticas**: * Requiere que Docker est茅 configurado en modo Swarm. * Crea redes l贸gicas que conectan m煤ltiples hosts. * **Ejemplo**:docker network create --driver overlay my\_overlay\_network docker service create --network my\_overlay\_network my\_image ### **5. macvlan** * **Descripci贸n**: Asigna una direcci贸n MAC a cada contenedor, lo que permite que parezcan dispositivos f铆sicos en la red. * **Uso t铆pico**: Integraci贸n directa con la red f铆sica del host. * **Caracter铆sticas**: * Los contenedores aparecen como dispositivos independientes en la red. * 脷til para aplicaciones que requieren acceso a la red f铆sica. * **Ejemplo**:docker network create \\ \--driver macvlan \\ \--subnet=192.168.1.0/24 \\ \--gateway=192.168.1.1 \\ -o parent=eth0 my\_macvlan\_network docker run --network my\_macvlan\_network my\_image ### **6. custom network (redes personalizadas)** * **Descripci贸n**: Puedes crear redes personalizadas con configuraciones espec铆ficas. * **Uso t铆pico**: Configurar reglas espec铆ficas para la comunicaci贸n y aislamiento de contenedores. * **Caracter铆sticas**: * Compatibilidad con `bridge`, `overlay`, y otros. * Personalizaci贸n de subredes, rangos IP, y DNS. * **Ejemplo**:docker network create \\ \--driver bridge \\ \--subnet=192.168.1.0/24 my\_custom\_network docker run --network my\_custom\_network my\_image ### Comparaci贸n de Modelos ModeloAislamientoUso ExternoUso en Cl煤sterFacilidad de Uso**bridge**S铆Mapeo PuertosNoAlto**host**NoS铆NoAlto**none**S铆NoNoMedio**overlay**S铆S铆S铆Medio**macvlan**NoS铆NoBajo ![](https://static.platzi.com/media/user_upload/Screenshot%202024-12-06%20080321-2f1b88ea-d7f2-43af-8fea-b28299f50f52.jpg)
Acceder a una red interna de contenedores de Docker desde el exterior requiere el uso de t茅cnicas de red adecuadas. Una opci贸n com煤n es utilizar el modelo de red "host", que permite que los contenedores utilicen la direcci贸n IP de tu m谩quina, haciendo accesibles sus servicios desde el exterior. Otra alternativa es exponer puertos espec铆ficos de los contenedores mediante el comando `-p` al crear el contenedor, por ejemplo: `docker run -p 80:80 nombre_contenedor`. Esto abrir谩 el puerto 80 del contenedor en el puerto 80 de tu m谩quina, permitiendo el acceso externo.
Hacer ping a servidor-web puede hacerte dar una idea de lo r谩pido que pueden comunicarse entre contenedores para hacer uso de los servicios. Aqui ya todo depende de los recursos de hardware.