/ / Comunicação bidirecional do Docker entre contêineres - tomcat, docker, docker-compose

Comunicação bidirecional do Docker entre contêineres - tomcat, docker, docker-compose

Eu estou olhando para configurar a comunicação bidirecional entre contêineres docker.Eu tenho os seguintes recipientes:

1.Apache
2.Tomcat A
3.Tomcat B
4.Tomcat C
5.MySQL

Apache age como um proxy reverso e encaminhasolicitações para Tomcat A, B e C. Todos os recipientes Tomcat se comunicarão com banco de dados MySQL.A partir de agora eu tenho links no Apache para enviar pedidos para recipientes tomcat e contêineres tomcat tem links para se comunicar com banco de dados MySQL. Agora preciso estabelecer uma comunicação bidirecional entre os contêineres do Tomcat Como o Tomcat A quer falar com Tomcat B e Tomcat C e vice-versa. Como podemos conseguir isso com o Docker Compose? É possível fornecer links bidirecionais no arquivo docker-compose.yml?

Desde já, obrigado.

Respostas:

1 para resposta № 1

Não, os Links não são bidirecionais, por isso você não pode alcançá-lo com isso.

O que você pode fazer é configurar seus contêineres na mesma rede, para que eles possam acessar um ao outro por meio do nome do contêiner.

Por exemplo

docker network create newnetwork
docker run -d --name apache --net=newnetwork Apache
docker run -d --name tomcatA --net=newnetwork TomcatA
...

Fazendo isso, o contêiner do apache poderá fazer ping / acessar o tomcatA, e o tomcatA poderá executar ping / acessar o apache.

Veja como integrar redes com o docker-compose: https://docs.docker.com/compose/networking/#specifying-custom-networks

Eu não tenho certeza desta parte, mas desde docker ~ 1.10, parece que você não precisa criar uma rede, a rede padrão conecta todos os contêineres juntos para que você já possa pingar / acessar cada contêiner dos outros através de seu nome. (veja o arquivo / etc / hosts nos contêineres, se você vir o nome dos outros contêineres e seu IP, é bom ir)