Cómo crear una red de puente personalizada de Docker

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Docker es una potente plataforma de contenedores que te permite empaquetar y desplegar aplicaciones de manera consistente y reproducible. Una de las características clave de Docker son sus capacidades de red, que incluyen la posibilidad de crear redes de puente personalizadas. En este tutorial, aprenderás cómo crear una red de puente personalizada de Docker y conectar contenedores a ella, lo que permitirá una comunicación segura y eficiente entre los componentes de tu aplicación.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/run -.-> lab-411523{{"Cómo crear una red de puente personalizada de Docker"}} docker/ls -.-> lab-411523{{"Cómo crear una red de puente personalizada de Docker"}} docker/inspect -.-> lab-411523{{"Cómo crear una red de puente personalizada de Docker"}} docker/create -.-> lab-411523{{"Cómo crear una red de puente personalizada de Docker"}} docker/network -.-> lab-411523{{"Cómo crear una red de puente personalizada de Docker"}} end

Comprender las redes de puente de Docker

Los contenedores de Docker están diseñados para ser livianos y aislados, pero aún necesitan comunicarse entre sí y con el mundo exterior. Docker ofrece varias opciones de red para facilitar esta comunicación, una de las cuales es la red de puente de Docker.

Una red de puente de Docker es una red virtual que conecta los contenedores de Docker que se ejecutan en el mismo host. Es el tipo de red predeterminado para los contenedores de Docker y permite que los contenedores se comuniquen entre sí utilizando sus nombres de contenedor o direcciones IP.

Cuando se inicia un nuevo contenedor de Docker, se conecta automáticamente a la red de puente predeterminada, que se llama bridge. Esta red es creada por Docker y es administrada por el demonio de Docker. La red bridge es una buena opción para casos de uso simples, pero tiene algunas limitaciones, como la imposibilidad de conectar fácilmente contenedores en diferentes hosts.

Para superar estas limitaciones, se puede crear una red de puente personalizada de Docker. Una red de puente personalizada ofrece varios beneficios:

  1. Mejor aislamiento: Los contenedores conectados a una red de puente personalizada están aislados de los contenedores de la red bridge predeterminada, lo que mejora la seguridad y reduce el riesgo de interacciones no deseadas.
  2. Enlace de contenedores más fácil: Los contenedores de la misma red de puente personalizada pueden comunicarse entre sí utilizando sus nombres de contenedor, lo que facilita la configuración y el manejo de la comunicación entre contenedores.
  3. Segmentación de red: Las redes de puente personalizadas permiten crear redes separadas para diferentes partes de su aplicación, lo que mejora la organización y la seguridad de la red.
  4. Mejor escalabilidad: Las redes de puente personalizadas se pueden utilizar para escalar su aplicación permitiéndole agregar fácilmente nuevos contenedores a la red.

Para crear una red de puente personalizada de Docker, se puede utilizar el comando docker network create. Una vez creada la red personalizada, se pueden conectar contenedores a ella utilizando la opción --network al iniciar un nuevo contenedor o conectando un contenedor existente a la red utilizando el comando docker network connect.

graph LR A[Docker Host] --> B[Docker Daemon] B --> C[Default Bridge Network] B --> D[Custom Bridge Network] C --> E[Container 1] C --> F[Container 2] D --> G[Container 3] D --> H[Container 4]

En el diagrama anterior, se puede ver la red bridge predeterminada y una red de puente personalizada creada por el demonio de Docker. Los contenedores 1 y 2 están conectados a la red bridge predeterminada, mientras que los contenedores 3 y 4 están conectados a la red de puente personalizada.

Crear una red de puente personalizada de Docker

Para crear una red de puente personalizada de Docker, puedes utilizar el comando docker network create. La sintaxis básica es la siguiente:

docker network create [OPTIONS] NETWORK

A continuación, se presentan los pasos para crear una red de puente personalizada de Docker:

Paso 1: Crear una red de puente personalizada

Abre una terminal y ejecuta el siguiente comando para crear una red de puente personalizada llamada "my-custom-network":

docker network create my-custom-network

Esto creará una nueva red de puente con la configuración predeterminada.

Paso 2: Verificar la creación de la red

Puedes enumerar todas las redes de Docker disponibles utilizando el comando docker network ls:

docker network ls

La salida debe incluir la nueva red de puente "my-custom-network".

Paso 3: Personalizar la configuración de la red (opcional)

Puedes personalizar la configuración de la red especificando opciones adicionales al crear la red. Por ejemplo, para crear una red con una subred y una puerta de enlace específicas:

docker network create --subnet 172.18.0.0/16 --gateway 172.18.0.1 my-custom-network

Esto creará una red de puente personalizada con una subred y una puerta de enlace específicas.

Paso 4: Inspeccionar los detalles de la red

Puedes inspeccionar los detalles de la red personalizada utilizando el comando docker network inspect:

docker network inspect my-custom-network

Esto mostrará la configuración de la red, incluyendo la subred, la puerta de enlace y otros detalles.

Al crear una red de puente personalizada de Docker, puedes mejorar el aislamiento, la organización y la escalabilidad de tus aplicaciones basadas en Docker.

Conectar contenedores a la red personalizada

Después de crear una red de puente personalizada de Docker, puedes conectar contenedores a ella. Hay dos formas de hacer esto:

1. Conectar un contenedor durante la creación

Al iniciar un nuevo contenedor, puedes especificar la opción --network para conectarlo a la red personalizada. Por ejemplo, para iniciar un nuevo contenedor y conectarlo a la red "my-custom-network":

docker run -d --name my-app --network my-custom-network nginx

Esto iniciará un nuevo contenedor de Nginx y lo conectará a la red de puente "my-custom-network".

2. Conectar un contenedor existente

También puedes conectar un contenedor existente a una red personalizada utilizando el comando docker network connect. Por ejemplo, para conectar un contenedor existente llamado "my-app" a la red "my-custom-network":

docker network connect my-custom-network my-app

Después de conectar el contenedor a la red personalizada, puedes acceder a él desde otros contenedores de la misma red utilizando el nombre del contenedor o su dirección IP dentro de la red.

graph LR A[Docker Host] --> B[Docker Daemon] B --> C[Custom Bridge Network] C --> D[Container 1] C --> E[Container 2] C --> F[Container 3]

En el diagrama anterior, podemos ver tres contenedores conectados a la red de puente personalizada "my-custom-network". Estos contenedores pueden comunicarse entre sí utilizando sus nombres de contenedor o direcciones IP dentro de la red.

Al conectar contenedores a una red de puente personalizada de Docker, puedes mejorar el aislamiento, la organización y la escalabilidad de tus aplicaciones basadas en Docker.

Resumen

En este tutorial, has aprendido cómo crear una red de puente personalizada de Docker, conectar contenedores a ella y aprovechar los beneficios de utilizar una red personalizada para tus aplicaciones de Docker. Al comprender e implementar redes de puente personalizadas de Docker, puedes mejorar la seguridad, el aislamiento y la comunicación entre tus servicios en contenedores, lo que conducirá a una infraestructura basada en Docker más robusta y escalable.