🎯 Redes de Comunicação no Docker

Em poucas palavras

As redes no Docker são o mecanismo fundamental que permite a comunicação entre contêineres, bem como a comunicação entre contêineres e o mundo exterior. Elas garantem o isolamento e a conectividade necessários para aplicações distribuídas. As redes permitem a comunicação entre múltiplos contêineres na mesma rede. Por padrão, o Docker mantém cada contêiner em uma rede isolada, garantindo que eles não se comuniquem a menos que explicitamente configurado. Para facilitar a construção e gerenciamento de redes complexas, o Docker Compose é uma ferramenta essencial.


📝 Notas e Desenvolvimento


🔗 Conexões e Contexto


📚 Referências e Fontes

Citações Diretas

📂 Outros Conteúdos Preservados

Redes de Comunicação no Docker

Redes de comunicação no Docker

As redes no Docker são o mecanismo fundamental que permite a comunicação entre contêineres, bem como a comunicação entre contêineres e o mundo exterior. Elas garantem o isolamento e a conectividade necessários para aplicações distribuídas. As redes permitem a comunicação entre múltiplos contêineres na mesma rede. Por padrão, o Docker mantém cada contêiner em uma rede isolada, garantindo que eles não se comuniquem a menos que explicitamente configurado. Para facilitar a construção e gerenciamento de redes complexas, o Docker Compose é uma ferramenta essencial.

:: Referência :: Site oficial do Docker

Tipos de Redes Docker

O Docker oferece diversos drivers de rede, cada um com um propósito específico:

1. Rede Bridge (Padrão)

  • Descrição: É a rede padrão para novos contêineres. Contêineres conectados à mesma rede bridge podem se comunicar.
  • Uso: Ideal para aplicações de contêiner único ou pequenos grupos de contêineres que precisam se comunicar no mesmo host.
  • Exemplo:
docker run --name meu-servidor-web --network bridge -p 80:80 meu-servidor-web-imagem docker run --name meu-banco-dados --network bridge meu-banco-dados-imagem

2. Rede Host

  • Descrição: Remove o isolamento de rede entre o contêiner e o host Docker. O contêiner usa diretamente a pilha de rede do host.
    • Uso: Para casos de uso específicos onde o desempenho da rede é crítico ou quando o contêiner precisa acessar serviços de rede diretamente no host.
    • Cuidado: Menos seguro, pois o contêiner tem acesso total às interfaces de rede do host.

3. Rede None

  • Descrição: Desabilita completamente a rede para o contêiner. O contêiner não tem interfaces de rede.
    • Uso: Para contêineres que não precisam de conectividade de rede, como tarefas de processamento de arquivos locais.

4. Redes Personalizadas (User-defined Bridge Networks)

  • Descrição: Criadas pelo usuário, oferecem melhor isolamento e descoberta de serviço automática por nome.
  • Vantagens:
    • Descoberta de Serviço Automática: Contêineres podem se referir uns aos outros pelo nome do contêiner ou do serviço.
    • Melhor Isolamento: Contêineres em redes diferentes não podem se comunicar por padrão.
    • Configuração DNS:* O Docker fornece um servidor DNS interno para resolução de nomes.
  • Como Criar: bash docker network create minha-rede-app
  • Como Usar:
docker run --name app-frontend --network minha-rede-app -p 8080:80 app-frontend-imagem docker run --name app-backend --network minha-rede-app app-backend-imagem 

Redes com Docker Compose

O Docker Compose simplifica a gestão de redes para aplicações multi-contêiner. Por padrão, ele cria uma rede bridge para todos os serviços definidos no arquivo docker-compose.yml, permitindo que eles se comuniquem usando seus nomes de serviço.

Exemplo de docker-compose.yml:

version: '3.8'
services:
  web:
    image: nginx
    ports:
      - "80:80"
    networks:
      - app-network
  db:
    image: postgres
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    networks:
      - app-network
 
networks:
  app-network:
    driver: bridge