Existem três locais em que o docker irá gerar sub-redes de rede.
- A ponte padrão
- Redes de pontes geradas pelo usuário
- Redes de sobreposição geradas no modo Swarm
Para a ponte padrão (chamada "ponte"), você pode especificar o BIP (acredito que seja o IP da ponte; verifique se é um IP do host, não um IP da rede ) no daemon.json
arquivo. E para redes de pontes geradas pelo usuário, você pode definir um pool de sub-rede para escolher (supondo que o usuário não especifique manualmente uma sub-rede). Para esses dois, você /etc/docker/daemon.json
ficaria assim:
{
"bip": "10.200.0.1/24",
"default-address-pools":[
{"base":"10.201.0.0/16","size":24},
{"base":"10.202.0.0/16","size":24}
]
}
Cada configuração do conjunto de endereços acima define um intervalo CIDR e um tamanho de sub-redes a serem alocados nesse 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 conjuntos 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 modificará apenas 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 no modo enxame. Isso só pode ser feito no momento da criação do enxame, espero que seja atualizado no futuro para permitir o docker swarm update
ajuste desses conjuntos:
$ 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