Criar uma rede bridge básica
Nesta etapa, aprenderemos como criar uma rede bridge básica no Docker. Uma rede bridge é o tipo de rede padrão para contêineres. Contêineres conectados à mesma rede bridge podem se comunicar entre si, enquanto são isolados de contêineres em outras redes bridge e da rede da máquina host.
Primeiro, vamos listar as redes Docker existentes para ver as redes padrão.
docker network ls
Você deve ver algumas redes padrão como bridge, host e none. A rede bridge é aquela com a qual trabalharemos.
Agora, vamos criar uma nova rede bridge. Vamos chamá-la de my-bridge-network.
docker network create my-bridge-network
Este comando cria uma nova rede bridge com as configurações padrão. O Docker atribui automaticamente uma sub-rede e um gateway a esta rede.
Para verificar se a rede foi criada com sucesso, liste as redes Docker novamente.
docker network ls
Você deve ver agora my-bridge-network na lista.
Em seguida, vamos inspecionar a rede recém-criada para ver seus detalhes, incluindo a sub-rede e o gateway atribuídos pelo Docker.
docker network inspect my-bridge-network
A saída deste comando fornecerá informações detalhadas sobre a rede, como seu ID, driver (que deve ser bridge) e a sub-rede e o gateway na seção IPAM.
Agora, vamos executar um contêiner e conectá-lo à nossa nova rede. Usaremos a imagem alpine para este exemplo. Se você não tiver a imagem alpine localmente, o Docker a puxará automaticamente.
docker run -d --name container1 --network my-bridge-network alpine sleep infinity
Este comando executa um contêiner chamado container1 em modo detached (-d), conecta-o a my-bridge-network (--network my-bridge-network) e o mantém em execução executando o comando sleep infinity.
Para verificar se o contêiner está em execução e conectado à rede correta, você pode inspecionar o contêiner.
docker inspect container1
Na saída, procure a seção Networks. Você deve ver my-bridge-network listado, juntamente com o endereço IP atribuído ao contêiner dentro dessa rede.
Finalmente, vamos executar outro contêiner e conectá-lo à mesma rede para demonstrar a comunicação entre eles.
docker run -d --name container2 --network my-bridge-network alpine sleep infinity
Agora, tanto container1 quanto container2 estão conectados a my-bridge-network. Eles devem ser capazes de se comunicar entre si usando seus nomes de contêiner ou endereços IP dentro da rede.
Para testar a comunicação, podemos executar um comando dentro do container1 para fazer ping no container2. Primeiro, precisamos instalar o pacote iputils nos contêineres alpine para usar o comando ping.
docker exec container1 apk add --no-cache iputils
docker exec container2 apk add --no-cache iputils
Agora, faça ping no container2 a partir do container1.
docker exec container1 ping -c 3 container2
Você deve ver respostas de ping bem-sucedidas, indicando que os dois contêineres na mesma rede bridge podem se comunicar.