Eu tenho uma instância mongo em execução em um contêiner chamado mongo1
isso expôs o porto 27017. Eu posso me conectar muito bem do host.
Eu tenho outro contêiner que está executando um aplicativo que deseja se conectar à instância mongo.
Como posso conectar os 2 contêineres para que o nome do host mongo1
é exposto ao outro recipiente e pode se conectar a mongo1:27017
?
O que estava acontecendo era que a rede docker padrão não permite name >> DNS
mapeamento.
Os contêineres na rede de ponte padrão só podem acessar uns aos outros por endereços IP, a menos que você use a opção --link, que é considerada legada. Em uma rede de Ponte definida pelo usuário, os contêineres podem se resolver por nome ou alias.
Então eu criei uma nova rede:
docker network create -d bridge br0
e então adicionou os contêineres a essa rede:
docker network connect br0 mongo1docker network connect br0 wiki
agora eles podem se ver pelo nome.
Para contêineres existentes (como solução temporária)
docker inspect <mango_container_name> | grep IPAddress
e edite / adicionar /etc/hosts
dentro do recipiente
docker exec -it -u 0 <app_container_name> bash
em seguida, de dentro do container map container_name com o endereço IP .. Exemplo
echo "172.15.0.5 mango1" >> /etc/hostsexit
.......
Ou você pode atribuir o nome do host para o contêiner durante a instalação com
docker run -it -h mango1 mango_image
e / ou adicionar exemplo echo "172.17.0.5 mango1" >> /etc/hosts
comando em arquivos docker para menos dor de cabeça
tente vincular entre o conceito de contêiner