Devido a problemas com portais cativos e o intervalo de IP do Docker padrão, estou tentando fazer o Docker usar o intervalo 198.18.0.0, em vez de 172.17.0.0, que entra em conflito com os portais cativos usados nos trens onde moro.
Seguinte documento, Eu criei /etc/docker/daemon.json, e coloque o seguinte nele:
{ "bip":"198.18.0.0/16"}
Isso funcionou para o docker0, mas parece não ter afetado nenhuma das outras redes e, usando o docker compose, a primeira rede criada é 172.17.0.0, que recria o clash.
O que posso fazer para alterar a sub-rede padrão para todo redes docker (de preferência sem ter que declarar meu intervalo de IP personalizado em cada arquivo de composição)?
Existem três lugares onde o docker gerará sub-redes de rede.
A ponte padrão
Redes de Ponte geradas pelo Usuário
Redes de sobreposição geradas pelo modo Swarm
Para a ponte padrão( chamada "ponte"), você pode especificar Bip (acredito que seja o IP da Ponte; certifique-se de que é um IP host, não um IP de rede) no daemon.json arquivo. E para redes de Ponte geradas pelo usuário, você pode definir um pool de sub-redes para escolher (supondo que o Usuário não especifique manualmente uma sub-rede). Para esses dois, seu /etc/docker/daemon.json pareceria:
Cada configuração do pool de endereços acima define um intervalo CIDR e o tamanho das sub-redes a serem alocadas desse intervalo. Portanto, o acima define dois intervalos de Classe B que são alocados como redes de Classe C (/24). Você precisa de pelo menos 18.06 para os pools de endereços padrão. Você precisará recarregar o daemon do docker para que essa alteração seja aplicada (systemctl reload docker). E essa alteração só modificará as redes de usuários recém-criadas, portanto, você precisará interromper os contêineres e excluir as redes existentes no intervalo errado.
Em 18.09, o Docker adicionou a capacidade de especificar o intervalo de endereços para redes de sobreposição geradas pelo modo swarm. Isso só pode ser feito no momento da criação do enxame agora, espero que seja atualizado no futuro para permitir docker swarm update para ajustar esses pools:
Configurar o rede de ponte padrão: "...Para configurar a rede de ponte padrão, você especifica opções no daemon.json. Aqui está um exemplo daemon.json com várias opções especificadas. Especifique apenas as configurações que você precisa personalizar. …"
Com compor: Especifique redes personalizadas: "...Em vez de apenas usar a rede de aplicativos padrão, você pode especificar suas próprias redes com a chave de redes de nível superior. Isso permite que você crie topologias mais complexas e especifique drivers e opções de rede personalizados. Você também pode usá-lo para conectar serviços a redes criadas externamente que não são gerenciadas pelo Compose. …"
Pode ser um pouco brutal, mas eu simplesmente faço um sudo ifconfig docker0 down para desligar a interface que entra em conflito com o wifi que estou tentando usar.