Como configuro contêineres do Docker para ter endereços IP exclusivos que não são os padrão?

4

Como configuro contêineres do Docker para ter endereços IP exclusivos que não são os padrão?

Os contêineres do Docker executarão o Apache ou algum serviço da web. Esses contêineres do Docker compartilharão um host que possui uma NIC física. Esses contêineres devem ser identificáveis por endereços IP exclusivos com chamadas pela porta 80. As estações de trabalho usarão o HTTP para fazer download de arquivos.

Eu tentei criar endereços IP fictícios no host do Docker. Mas isso causou a queda de rede no servidor.

Eu tentei instalar a sobreposição do Docker, mas não acho que isso me ajudará a conseguir que as estações de trabalho usem solicitações HTTP para os contêineres. A sobreposição do Docker parece estar voltada para a conectividade entre contêineres.

Eu olhei para o uso do interlock, mas prefiro não usar o Swarm.

    
por Kiran 28.04.2016 / 01:55

1 resposta

3

A solução mais fácil aqui é adicionar endereços adicionais ao host e vincular um contêiner a cada endereço. Por exemplo, supondo que seu host seja 192.168.1.20, você pode adicionar endereços adicionais como este:

ip addr add 192.168.1.21/32 dev eth0
ip addr add 192.168.1.22/32 dev eth0
ip addr add 192.168.1.23/32 dev eth0

Depois, ao iniciar um contêiner, publique a porta 80 no contêiner para a porta 80 em um determinado endereço de host, assim:

docker run -p 192.168.1.21:80:80 mywebimage

(Isto não altera o endereço IP do container; ele cria um mapa entre o endereço IP e a porta e o endereço IP interno e a porta do container.)

Observe que a configuração de endereço mostrada aqui não será persistente; Se você reiniciar seu host, você perderá os endereços. Exatamente como você configura endereços como esse persistentemente varia de distribuição para distribuição; consulte sua documentação de distribuição para detalhes.

    
por 28.04.2016 / 02:45