Existem três locais onde a janela de encaixe gera sub-redes.
- A ponte padrão
- Redes de ponte geradas pelo usuário
- Redes de sobreposição geradas no modo Swarm
Para a ponte padrão (chamada "bridge"), você pode especificar o BIP (acredito que seja o Bridge IP) no arquivo daemon.json. 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 seria parecido com:
{
"bip": "10.200.0.0/24",
"default-address-pools":[
{"base":"10.201.0.0/16","size":24},
{"base":"10.202.0.0/16","size":24}
]
}
Cada configuração de pool de endereços acima define um intervalo CIDR e o tamanho das sub-redes a serem alocadas a partir 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ó modifica as redes de usuários recém-criadas, por isso você precisará interromper os contêineres e excluir redes existentes no intervalo errado.
Em 18.09, o Docker adicionou a capacidade de especificar o intervalo de endereços para as redes de sobreposição geradas no modo swarm. Isso só pode ser feito no momento da criação de enxames agora, e esperamos que isso seja atualizado no futuro para permitir que docker swarm update
ajuste esses pools:
$ docker swarm init \
--default-addr-pool 10.202.0.0/16 \
--default-addr-pool 10.203.0.0/16 \
--default-addr-pool-mask-length 24