Configurando o Docker para não usar o intervalo 172.17.0.0

2

Devido a problemas com portais cativos e o intervalo IP do Docker padrão, estou tentando fazer com que o Docker use o intervalo 198.18.0.0, em vez de 172.17.0.0, que colide com os portais cativos usados nos trens onde eu moro.

Seguindo os documentos , criei /etc/docker/daemon.json , e coloque o seguinte:

{
    "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, a primeira rede criada é a 172.17.0.0, que recria o conflito.

O que posso fazer para alterar a sub-rede padrão de redes de docker all (de preferência sem ter que declarar meu intervalo de IP personalizado em cada arquivo de composição)?

    
por jrtapsell 16.06.2018 / 14:48

4 respostas

2

É possível redefinir o intervalo padrão.

$ docker -v
Docker version 18.06.0-ce, build 0ffa825

Edite ou crie o arquivo de configuração para o daemon do docker:

# nano /etc/docker/daemon.json

Adicione linhas:

{
  "default-address-pools":
  [
    {"base":"10.10.0.0/16","size":24}
  ]
}

Reinicie o dockerd:

# service docker restart

Verifique o resultado:

$ docker network create foo
$ docker network inspect foo | grep Subnet
                    "Subnet": "10.10.1.0/24"

Funciona também para o docker-compose. Mais informações aqui link (mesclado)

    
por 19.10.2018 / 04:46
1

Configure a rede de ponte padrão : "… Para configurar a rede bridge 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 a composição: Especifique as redes personalizadas : "... Em vez de usar apenas a rede de aplicativos padrão, você pode especificar suas próprias redes com a chave de redes de nível superior. Isso permite criar topologias mais complexas e especificar opções e drivers de rede personalizados. Você também pode usá-los para conectar externamente redes criadas que não são gerenciadas pelo Compose.… "

    
por 16.06.2018 / 15:06
1

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
    
por 29.11.2018 / 17:38
0

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.

    
por 28.11.2018 / 21:21