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

Container não comunica com outro container

Criei um cluster onde um dos nós foi adicionado a uma instância de Portainer fora do cluster.

Dentro do Portainer, você consegue subir containers como se fosse no modo standalone e eu subi jusatmente alguns containers utilizando um docker-compose lá pelo Portainer.

Dentro desse compose, tinham duas apis em Java rodando na porta 8080 e expondo a porta 8080 pra 'máquina física'.

Não foi possível se comunicar nem pelo nome do container, nem pelo ip do container, nem pelo ip da própria máquina física.

Qual o problema, porque não foi possível uma api conseguir consumir a outra?

1 resposta
solução!

Oi Rithyelle, tudo bem?

Desculpe a demora em retornar.

Pelo que entendi, você está enfrentando problemas de comunicação entre dois containers em um cluster Docker Swarm, onde um dos nós foi adicionado a uma instância de Portainer fora do cluster.

Existem algumas possíveis causas para esse problema. Vou listar algumas soluções que podem ajudar a resolver essa questão:

  1. Verifique se os containers estão na mesma rede: Certifique-se de que os dois containers estão na mesma rede Docker. Isso é importante para que eles possam se comunicar entre si. Você pode verificar as redes existentes no cluster usando o comando docker network ls e adicionar os containers à mesma rede usando a opção --network no comando docker run ou docker-compose.

  2. Verifique as portas de exposição: Certifique-se de que as portas necessárias para a comunicação entre os containers estão corretamente expostas. No seu caso, você mencionou que as APIs em Java estão rodando na porta 8080 e expondo essa porta para a máquina física. Verifique se as portas estão corretamente configuradas no arquivo de configuração do Docker Compose.

  3. Verifique os nomes dos serviços: Ao tentar se comunicar entre containers, é importante usar o nome do serviço em vez do IP do container. Certifique-se de que você está usando o nome correto do serviço no código da sua API para fazer a comunicação.

  4. Verifique as políticas de firewall: Verifique se não há políticas de firewall que estejam bloqueando a comunicação entre os containers. Certifique-se de que as portas necessárias estão liberadas no firewall da máquina física.

Um abraço e bons estudos.