Cómo usar el comando docker network disconnect para desconectar un contenedor de una red

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

En este laboratorio, aprenderá cómo administrar las conexiones de red de contenedores utilizando el comando docker network disconnect. Comenzaremos creando una red personalizada y ejecutando un contenedor conectado a ella.

A continuación, verá cómo conectar un contenedor existente a una red adicional. Finalmente, aprenderá cómo desconectar el contenedor de una red específica y verificar la desconexión. Este ejercicio práctico le brindará experiencia práctica en el control de la conectividad de red de los contenedores.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/run -.-> lab-555175{{"Cómo usar el comando docker network disconnect para desconectar un contenedor de una red"}} docker/inspect -.-> lab-555175{{"Cómo usar el comando docker network disconnect para desconectar un contenedor de una red"}} docker/create -.-> lab-555175{{"Cómo usar el comando docker network disconnect para desconectar un contenedor de una red"}} docker/pull -.-> lab-555175{{"Cómo usar el comando docker network disconnect para desconectar un contenedor de una red"}} docker/network -.-> lab-555175{{"Cómo usar el comando docker network disconnect para desconectar un contenedor de una red"}} end

Crear una red y un contenedor

En este paso, aprenderemos cómo crear una red personalizada de Docker y ejecutar un contenedor conectado a ella. Por defecto, los contenedores de Docker se conectan a la red bridge, pero crear redes personalizadas permite un mejor aislamiento y control de la comunicación entre contenedores.

Primero, creemos una nueva red bridge llamada my-network.

docker network create my-network

Debería ver el ID de la red recién creada impreso en la salida.

A continuación, extraeremos la imagen nginx de Docker Hub. Esta imagen se utilizará para crear nuestro contenedor.

docker pull nginx

Este comando descarga la imagen nginx a su máquina local.

Ahora, ejecutemos un contenedor Nginx y conectémoslo a la red my-network que acabamos de crear. Nombraremos el contenedor my-nginx.

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

Desglosemos este comando:

  • docker run: Este comando se utiliza para ejecutar un contenedor.
  • -d: Esta bandera ejecuta el contenedor en modo desatendido, lo que significa que se ejecuta en segundo plano.
  • --name my-nginx: Esto asigna el nombre my-nginx al contenedor.
  • --network my-network: Esto conecta el contenedor a la red my-network que creamos.
  • nginx: Esta es la imagen que se utilizará para crear el contenedor.

Después de ejecutar el comando, Docker iniciará el contenedor my-nginx y lo conectará a la red my-network.

Conectar el contenedor a la red

En el paso anterior, creamos una red y ejecutamos un contenedor conectado a ella. En este paso, demostraremos cómo conectar un contenedor ya en ejecución a una red adicional. Esto es útil si necesitas que un contenedor se comunique con otros contenedores en una red diferente.

Primero, creemos otra nueva red bridge llamada another-network.

docker network create another-network

Debería ver el ID de esta nueva red impresa en la salida.

Ahora, conectaremos nuestro contenedor existente my-nginx a esta nueva red another-network.

docker network connect another-network my-nginx

Este comando conecta el contenedor especificado (my-nginx) a la red especificada (another-network). El contenedor ahora tendrá interfaces de red tanto en my-network como en another-network.

Para verificar que el contenedor está conectado a ambas redes, podemos inspeccionar la configuración de red del contenedor.

docker inspect my-nginx

Busque la sección "Networks" en la salida. Debería ver entradas tanto para my-network como para another-network, lo que indica que el contenedor está conectado exitosamente a ambas.

Desconectar el contenedor de la red

En el paso anterior, conectamos nuestro contenedor my-nginx a una red adicional, another-network. En este paso, aprenderemos cómo desconectar un contenedor de una red específica. Esto es útil cuando ya no necesitas que un contenedor forme parte de una red en particular.

Para desconectar el contenedor my-nginx de another-network, usamos el comando docker network disconnect.

docker network disconnect another-network my-nginx

Este comando toma el nombre de la red (another-network) y el nombre del contenedor (my-nginx) como argumentos.

Después de ejecutar este comando, el contenedor se eliminará de la red especificada. Ya no podrá comunicarse con otros contenedores en another-network a menos que también estén en una red compartida.

Para confirmar que el contenedor se ha desconectado, podemos inspeccionar nuevamente la configuración de red del contenedor.

docker inspect my-nginx

Mire la sección "Networks" en la salida. Ahora solo debería ver la red my-network lista, y another-network debería estar ausente. Esto confirma que el contenedor se ha desconectado exitosamente de another-network.

Verificar que el contenedor está desconectado

En el paso anterior, desconectamos el contenedor my-nginx de la red another-network. En este paso, realizaremos una verificación final para asegurarnos de que el contenedor en realidad ya no está conectado a another-network.

Podemos usar el comando docker inspect nuevamente para examinar la configuración de red del contenedor my-nginx.

docker inspect my-nginx

Revise la salida de este comando. Específicamente, busque la sección "Networks". Solo debería ver la red my-network lista bajo "Networks". La ausencia de another-network en esta lista confirma que el contenedor se ha desconectado exitosamente de ella.

Este paso sirve como confirmación de la acción anterior y refuerza cómo verificar el estado de red de un contenedor Docker.

Resumen

En este laboratorio, aprendimos cómo gestionar las conexiones de red de contenedores Docker. Comenzamos creando una red bridge personalizada y lanzando un contenedor directamente conectado a ella utilizando el comando docker run --network. Esto demostró la conexión inicial de un contenedor a una red específica durante su creación.

Posteriormente, exploramos cómo conectar un contenedor en ejecución a una red adicional utilizando el comando docker network connect. Finalmente, aprendimos cómo desconectar un contenedor de una red utilizando el comando docker network disconnect y verificamos la desconexión, lo que ilustra la flexibilidad de gestionar la pertenencia de un contenedor a una red después de su creación.