Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Realizar comunicação entre conteiners de MongoDB forma externa | conteiners em maquinas diferentes

Boa noite,

Como faço para configurar a rede de modo que dois containers criados usando Docker se comuniquem entre si, mesmo estando em servidores distintos? Cada container contém uma imagem do MongoDB instalada, e quero criar uma replicação entre essas duas máquinas. Como elas estão em máquinas diferentes, fiquei com dúvidas. Devo usar a rede host do Docker ao criar o container ou a bridge? Podem explicar um pouco sobre esse processo?

1 resposta
solução!

Oi, Sergio!

Para configurar a comunicação entre containers Docker em máquinas diferentes, você pode seguir alguns passos. Vou te explicar de uma forma prática:

  1. Configuração de Rede:

    • Overlay Network: Essa é uma rede que permite a comunicação entre containers em diferentes hosts. Você pode criar uma overlay network usando o Docker Swarm ou o Docker Compose com o modo Swarm.
    • Bridge Network: Funciona bem para comunicação entre containers no mesmo host, mas não é adequada para comunicação entre hosts diferentes.
  2. Criando uma Overlay Network:

    • Primeiro, você precisa inicializar um Swarm em um dos servidores:
      docker swarm init --advertise-addr <IP_do_servidor>
      
    • No outro servidor, você deve juntar-se ao Swarm:
      docker swarm join --token <token_do_swarm> <IP_do_servidor>:2377
      
    • Crie uma overlay network:
      docker network create --driver overlay my_overlay_network
      
  3. Criando os Containers:

    • Agora, você pode criar os containers MongoDB e conectá-los à overlay network:
      docker run -d --name mongo1 --network my_overlay_network mongo
      docker run -d --name mongo2 --network my_overlay_network mongo
      
  4. Configuração do MongoDB:

    • Para configurar a replicação entre os dois containers MongoDB, você precisará acessar o shell do MongoDB e configurar o replica set. Aqui está um exemplo básico:
      docker exec -it mongo1 mongo
      rs.initiate()
      rs.add("<IP_do_servidor_2>:27017")
      

Lembre-se de substituir <IP_do_servidor> e <token_do_swarm> pelos valores reais do seu ambiente.

Bons estudos!