Docker-Compose em desenvolvimento - Gerenciando sub-redes

4

Atualmente, estou usando o Docker-Compose para desenvolvimento com uma pequena equipe de pessoas. Vou descrever a configuração e o cenário que estamos enfrentando atualmente.

Temos um único projeto verificado em nosso VCS. Devevelopers verificar isso e fazer um "docker-compose up", tudo em um único host, mas em pastas de casa. Isso cria a rede padrão e atribui automaticamente uma sub-rede à nova rede padrão (até o momento, "compor"). Isso é ótimo para nós, pois isola os ambientes de desenvolvimento uns dos outros e nos permite usar os serviços nomeados para acessar nossos bancos de dados, etc em nossos arquivos de composição - tudo sem pisar nos dedos e os desenvolvedores não precisam configurar nada manualmente.

O obstáculo é ; essa rede padrão possui uma sub-rede de incrementação de 172. *. Isso é bom até chegarmos a sub-redes que estão atualmente em uso em nossa rede corporativa. Por exemplo: nossa VPN usa 172.19.0.0. Temos cerca de 4 ou 5 dessas sub-redes com as quais criaremos problemas de acesso quando os atingirmos quando desenvolvedores suficientes ativarem as pilhas.

Como outras pessoas gerenciam essa situação para desenvolvimento com o Docker Compose?

Essencialmente, temos muitos hosts executando o Docker, com muitos aplicativos diferentes e muitos desenvolvedores em cada aplicativo. Definir uma única sub-rede nos arquivos de composição; por usuário; por aplicativo (para garantir que todas as sub-redes sejam exclusivas, independentemente do host) se tornaria um pesadelo absoluto para gerenciar e provavelmente se tornar um exercício no gerenciamento de planilhas.

Eu não consigo nem encontrar uma maneira de impor o Docker-Compose para usar um intervalo de sub-rede diferente, como 10.0.0.0 etc - o que seria ótimo em nossa rede corporativa.

Qualquer ajuda com este tipo de configuração seria apreciada. Certamente os outros usam o Docker-Compose para criar ambientes de desenvolvimento?

Atenciosamente

    
por Schodemeiss 13.04.2017 / 17:53

2 respostas

1

O Docker 18.06 introduz a opção --default-address-pool . Com ele, você pode especificar o intervalo de endereços que as redes definidas pelo usuário usarão por padrão, se não forem explicitamente definidas com o parâmetro --subnet da rede. Você pode ver as solicitações pull onde os recursos foram implementados e discutidos para obter mais informações: moby / 29376 , moby / 36054 , moby / 36396 ,

--default-addr-pool

This flag specifies default subnet pools for global scope networks. Format example is --default-addr-pool 30.30.0.0/16 --default-addr-pool 40.40.0.0/16

    
por 09.10.2018 / 10:09
-1

A configuração da rede do docker não está na composição do docker, mas na própria configuração do daemon. O que você deseja fazer é alterar os usos padrão da janela de encaixe da rede, o que é feito passando --bip=10.110.0.1/16 (pense no 1 no final, já que você precisa de um IP válido para o docker para vincular) no script de inicialização do daemon do docker.

Como você não forneceu informações sobre o seu SO, você pode simplesmente tentar executar

docker daemon --bip=10.110.0.1/16

para mudar de rede para 10.110.0.0/16

Na minha caixa OpenSuse eu editei /etc/sysconfig/docker onde eu configurei DOCKER_OPTS="--bip=10.110.0.1/16" para obter o mesmo resultado.

Veja a documentação oficial para mais instruções:

por 15.04.2017 / 01:14