Docker compose - desabilita a rota do gateway padrão

Docker compose - desabilita a rota do gateway padrão

É possível evitar que o docker defina a rota padrão ao usar o arquivo yaml docker-compose?

Se meu docker-compose.yaml definir o ipam da rede com o driver padrão e qualquer sub-rede, costuras como docker (ou docker compose) atribuem automaticamente a rota padrão à tabela de roteamento do docker que está conectado a esta rede). Existe alguma maneira de desativá-lo?

Responder1

Infelizmente não.

Uma solicitação de recurso semelhante (#20179) está aberto no repositório GitHub há quase 6 anos, então eu realmente acredito que esse recurso não será implementado tão cedo.

Minha solução atual é, semelhante ao que @Zoredache mencionou, adicionar um script bash aos seus contêineres e definir o endereço IP do gateway desejado por meio de variáveis ​​de ambiente. O script exclui a rota padrão e a adiciona de volta com o IP personalizado como gateway.

Editar:a essência do meu script:

if [ -n "$GW" ]; then
    ip route delete default ;
    ip route add default via $GW ;
fi

Se você quiser alterar o gateway padrão do seu contêiner, execute o contêiner com a variável de ambiente apropriada GW=192.168.0.1e o script cuidará do resto. Além disso, certifique-se de incluir o script no CMDou ENTRYPOINTno seu Dockerfile
OBSERVAÇÃO:Requer o iproute2pacote.

Pode não ser a solução mais bonita, mas dá conta do recado.

informação relacionada