Como usar o comando docker network disconnect para desconectar um contêiner de uma rede

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como gerenciar as conexões de rede de contêineres usando o comando docker network disconnect. Começaremos criando uma rede customizada e executando um contêiner conectado a ela.

Em seguida, você verá como conectar um contêiner existente a uma rede adicional. Por fim, aprenderá como desconectar o contêiner de uma rede específica e verificar a desconexão. Este exercício prático fornecerá experiência prática no controle da conectividade de rede de contêineres.

Criar uma rede e um contêiner

Nesta etapa, aprenderemos como criar uma rede Docker customizada e executar um contêiner conectado a ela. Por padrão, os contêineres Docker são conectados à rede bridge, mas a criação de redes customizadas permite um melhor isolamento e controle de comunicação entre os contêineres.

Primeiro, vamos criar uma nova rede bridge chamada my-network.

docker network create my-network

Você deve ver o ID da rede recém-criada impresso na saída.

Em seguida, faremos o pull da imagem nginx do Docker Hub. Esta imagem será usada para criar nosso contêiner.

docker pull nginx

Este comando baixa a imagem nginx para sua máquina local.

Agora, vamos executar um contêiner Nginx e conectá-lo à my-network que acabamos de criar. Vamos nomear o contêiner my-nginx.

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

Vamos detalhar este comando:

  • docker run: Este comando é usado para executar um contêiner.
  • -d: Esta flag executa o contêiner em modo detached (desconectado), o que significa que ele é executado em segundo plano.
  • --name my-nginx: Isso atribui o nome my-nginx ao contêiner.
  • --network my-network: Isso conecta o contêiner à my-network que criamos.
  • nginx: Esta é a imagem a ser usada para criar o contêiner.

Após executar o comando, o Docker iniciará o contêiner my-nginx e o conectará à my-network.

Conectar o contêiner à rede

Na etapa anterior, criamos uma rede e executamos um contêiner conectado a ela. Nesta etapa, demonstraremos como conectar um contêiner já em execução a uma rede adicional. Isso é útil se você precisar que um contêiner se comunique com outros contêineres em uma rede diferente.

Primeiro, vamos criar outra nova rede bridge chamada another-network.

docker network create another-network

Você deve ver o ID desta nova rede impresso na saída.

Agora, conectaremos nosso contêiner my-nginx existente a esta nova another-network.

docker network connect another-network my-nginx

Este comando conecta o contêiner especificado (my-nginx) à rede especificada (another-network). O contêiner agora terá interfaces de rede em my-network e another-network.

Para verificar se o contêiner está conectado a ambas as redes, podemos inspecionar as configurações de rede do contêiner.

docker inspect my-nginx

Procure a seção "Networks" na saída. Você deve ver entradas para my-network e another-network, indicando que o contêiner está conectado com sucesso a ambas.

Desconectar o contêiner da rede

Na etapa anterior, conectamos nosso contêiner my-nginx a uma rede adicional, another-network. Nesta etapa, aprenderemos como desconectar um contêiner de uma rede específica. Isso é útil quando você não precisa mais que um contêiner faça parte de uma rede específica.

Para desconectar o contêiner my-nginx de another-network, usamos o comando docker network disconnect.

docker network disconnect another-network my-nginx

Este comando recebe o nome da rede (another-network) e o nome do contêiner (my-nginx) como argumentos.

Após executar este comando, o contêiner será removido da rede especificada. Ele não poderá mais se comunicar com outros contêineres em another-network, a menos que também estejam em uma rede compartilhada.

Para confirmar que o contêiner foi desconectado, podemos novamente inspecionar as configurações de rede do contêiner.

docker inspect my-nginx

Observe a seção "Networks" na saída. Você agora deve ver apenas my-network listada, e another-network deve estar ausente. Isso confirma que o contêiner foi desconectado com sucesso de another-network.

Verificar se o contêiner está desconectado

Na etapa anterior, desconectamos o contêiner my-nginx da another-network. Nesta etapa, realizaremos uma verificação final para garantir que o contêiner realmente não está mais conectado à another-network.

Podemos usar o comando docker inspect novamente para examinar a configuração de rede do contêiner my-nginx.

docker inspect my-nginx

Revise a saída deste comando. Especificamente, procure a seção "Networks". Você deve ver apenas my-network listada em "Networks". A ausência de another-network nesta lista confirma que o contêiner foi desconectado com sucesso dela.

Esta etapa serve como uma confirmação da ação anterior e reforça como verificar o status da rede de um contêiner Docker.

Resumo

Neste laboratório, aprendemos como gerenciar as conexões de rede de contêineres Docker. Começamos criando uma rede bridge customizada e lançando um contêiner diretamente conectado a ela usando o comando docker run --network. Isso demonstrou a conexão inicial de um contêiner a uma rede específica durante sua criação.

Posteriormente, exploramos como conectar um contêiner já em execução a uma rede adicional usando o comando docker network connect. Finalmente, aprendemos como desconectar um contêiner de uma rede usando o comando docker network disconnect e verificamos a desconexão, ilustrando a flexibilidade de gerenciar as associações de rede de contêineres após a criação.