Gerador de sub-redes do daemon do Docker
Gere as configurações de daemon.json que controlam quais sub-redes o Docker utiliza: default-address-pools e o endereço da bridge docker0 (bip). Veja quantas redes cabem nos seus intervalos e verifique se há conflitos.
Entrada
Saída
Leia-me
O que são os pools de endereços do Docker?
Cada rede do Docker recebe seu próprio intervalo de endereços IP, chamado sub-rede. Quando você cria uma rede sem escolher uma sub-rede, o Docker seleciona uma de uma lista integrada de pools de endereços que começa em 172.17.0.0/16 e continua até 172.31.0.0/16 e 192.168.0.0/16. Isso funciona até que o intervalo escolhido entre em conflito com outra coisa, como uma VPN, uma rede corporativa ou um banco de dados que esteja em um endereço fixo. Para corrigir isso de uma só vez para todas as redes, altere os pools de endereços nas configurações do daemon do Docker.
Descrição da ferramenta
Esta ferramenta gera as configurações daemon.json que controlam quais sub-redes o Docker usa. Insira um ou mais intervalos de pools de endereços e o tamanho de cada rede para obter a configuração default-address-pools. Você também pode definir o endereço da bridge padrão docker0 com bip. A ferramenta mostra quantas redes cabem nos seus pools e quantos hosts cada rede possui, verifica sua entrada à medida que você digita e sinaliza intervalos que provavelmente causarão conflitos. Tudo é calculado no seu navegador.
Exemplos
Dê a todas as novas redes uma sub-rede /24 a partir de 10.10.0.0/16, o que permite criar 256 redes com 254 hosts utilizáveis cada:
{
"default-address-pools": [
{
"base": "10.10.0.0/16",
"size": 24
}
]
}Mova a bridge padrão para outro intervalo e use dois pools:
{
"bip": "10.200.0.1/24",
"default-address-pools": [
{
"base": "10.10.0.0/16",
"size": 24
},
{
"base": "10.20.0.0/20",
"size": 24
}
]
}Recursos
- Vários intervalos de pools de endereços ao mesmo tempo, um por linha
- O tamanho das redes que o Docker separa de cada pool
- Endereço opcional para a bridge padrão
docker0 - Mostra quantas redes cabem nos pools e quantos hosts utilizáveis cada rede possui
- Emite avisos sobre intervalos públicos, pools sobrepostos e endereços com bits de host definidos
- Baixe o resultado como
daemon.json
Como funciona
Um intervalo é escrito como um endereço e um comprimento de prefixo, por exemplo, 10.10.0.0/16. O prefixo indica quantos dos 32 bits correspondem à parte da rede; os bits restantes correspondem aos hosts. Cada pool possui um intervalo base e um tamanho de rede. O Docker divide a base em redes desse tamanho e as atribui uma por uma. Assim, uma base 10.10.0.0/16 com tamanho 24 fornece 2^(24 − 16) = 256 redes. Uma rede /24 tem 256 endereços, dos quais 254 são utilizáveis, porque o primeiro é o endereço da rede e o último é o endereço de broadcast. O Docker também usa o primeiro endereço utilizável como gateway de uma rede bridge.
O tamanho não pode ser menor que o prefixo da base e é limitado a /30, porque uma rede precisa de espaço para um gateway e pelo menos um contêiner.
Dicas
- Escolha intervalos de 10.0.0.0/8 ou 172.16.0.0/12 que não sejam usados pela sua VPN nem pela sua rede corporativa. Intervalos próximos de 192.168.0.0/16 têm maior probabilidade de causar conflitos, porque roteadores domésticos e corporativos os utilizam
- A bridge padrão
docker0sempre usa 172.17.0.0/16. Se isso entrar em conflito com a sua rede, definabipcomo outro endereço, por exemplo, 10.200.0.1/24 - Salve o resultado como
/etc/docker/daemon.jsonno Linux ou em Configurações → Docker Engine no Docker Desktop e reinicie o Docker. Mescle-o com as configurações que já estão no arquivo, em vez de substituí-las - Uma alteração em
default-address-poolsafeta apenas as redes criadas posteriormente. Remova e crie novamente as redes existentes para movê-las para o novo intervalo - Pools que se sobrepõem são difíceis de analisar, portanto, mantenha-os separados
- Quando você vir "all predefined address pools have been fully subnetted", o Docker ficou sem intervalos. Adicione uma base maior ou um tamanho de rede menor para obter mais redes