Aceder ao contentor de acesso pelo FQDN

0

Eu tenho vários contêineres docker executando aplicativos da web. Eles podem ser acessados na minha rede usando o IP do host e o número da porta a que estou ligado no contêiner.

Eu gostaria de poder acessar os aplicativos por meio de um fqdn, por exemplo, app1.home.com (ou home.com/app1, se isso for mais fácil).

Para conseguir isso, acho que precisaria de um servidor dhcp e dns em execução na minha rede. Eu pretendo configurar o dnsmasq. Isso me permitiria resolver o domínio home.com localmente.

Então eu acho que precisaria de um proxy de alguma descrição para direcionar para a porta específica. Eu sei que isso pode ser conseguido com nginx ou apache, mas eu não sei como e parece um pouco mais matar. Eu acho que o HAProxy poderia ser uma opção, novamente eu não sei como.

TL; DR: Como posso endereçar aplicativos da Web em contêineres do docker usando um fqdn na minha rede doméstica?

    
por David 05.12.2016 / 19:45

1 resposta

0

Basta configurar o host do docker para ter vários ips, um para cada nome de host que você gostaria de configurar. Em seguida, configure o dnsmasq para apontar cada ip para um hostname diferente, site1.home.com- > X.X.X.X, site2.home.com- > Y.Y.Y.Y. Todos esses ips pertencerão ao seu host de encaixe.

Em seguida, inicie seus contêineres no host do Docker. Eu uso o docker swarm com uma rede de sobreposição, frontended por um proxy reverso nginx. Eu configuro contêineres de estivadores para pertencer a essa rede de sobreposição e especifico --names para eles, para que a rede de sobreposição do docker tenha seu próprio dns para o proxy reverso nginx usar para apontar para outros contêineres.

Em seguida, configuro o nginx para apontar para os outros contêineres usando o dns baseado em swarm, dependendo do ip usado para se conectar ao host do docker. Portanto, o http: //X.X.X.X/ é traduzido por nginx para apontar para o nome do dns site1 na rede de sobreposição. O nginx irá buscar a página do contêiner do site1 e a devolverá ao usuário. É muito exagerado, mas tem enormes vantagens: ele faz isso de forma redundante, com pouco tempo de inatividade devido às atualizações contínuas.

Por exemplo: eu vou para home1.home.com no meu navegador. Isso dispara uma pesquisa de DNS mudando home1.home.com para X.X.X.X. Sou direcionado para o proxy reverso nginx do host do docker, que obtém a página do site1 hospedada na rede de sobreposição interna, com base no ip que usei para conectar-me ao host do docker. Em seguida, ele apresenta a página para mim.

    
por Kyle H 05.12.2016 / 20:09