Назад | Перейти на главную страницу

Docker-Compose в разработке - Управление подсетями

В настоящее время я использую Docker-Compose для разработки небольшой командой людей. Я опишу установку и сценарий, с которыми мы сейчас сталкиваемся.

У нас есть единственный проект, зарегистрированный в нашей VCS. Разработчики проверяют это и делают «docker-compose up», все на одном хосте, но в домашних папках. Это создает сеть по умолчанию и автоматически назначает подсеть новой сети по умолчанию (пока что «docker-compose»). Это здорово для нас, поскольку оно изолирует среды разработки друг от друга и позволяет нам использовать названные службы для доступа к нашим базам данных и т. Д. В наших файлах Compose - и все это без наступления на пальцы ног, и разработчикам не нужно ничего настраивать вручную.

Загвоздка в том; эта сеть по умолчанию имеет постоянно увеличивающуюся подсеть 172. *. 0.0. Это нормально, пока мы не дойдем до подсетей, которые в настоящее время используются в нашей корпоративной сети. Например: наш VPN использует 172.19.0.0. У нас есть около 4 или 5 таких подсетей, с которыми мы создадим проблемы с доступом, как только столкнемся с ними, когда достаточное количество разработчиков запустит стеки.

Как другие люди справляются с этой ситуацией при разработке с помощью Docker Compose?

По сути, у нас есть много хостов, на которых запущен Docker, с множеством разных приложений и множеством разработчиков для каждого приложения. Определение единой подсети в файлах набора; на пользователя; на приложение (чтобы гарантировать, что все подсети уникальны, независимо от хоста) станет абсолютным кошмаром для управления и, вероятно, станет упражнением в управлении электронными таблицами.

Я даже не могу найти способ заставить Docker-Compose использовать другой диапазон подсети, например 10.0.0.0 и т. Д. - что было бы хорошо в нашей корпоративной сети.

Любая помощь с такой конфигурацией будет оценена. Наверняка другие используют Docker-Compose для создания сред разработки?

С уважением

Docker 18.06 представляет --default-address-pool вариант. С его помощью вы можете указать диапазон адресов, который пользовательские сети будут использовать по умолчанию, если он явно не установлен с помощью --subnet параметр сети. Вы можете увидеть запросы на вытягивание, в которых функции были реализованы и обсуждались для получения дополнительной информации: moby / 29376, moby / 36054, moby / 36396,

--default-addr-pool

Этот флаг указывает пулы подсетей по умолчанию для сетей с глобальной областью действия. Пример формата --default-addr-pool 30.30.0.0/16 --default-addr-pool 40.40.0.0/16

Конфигурация сети докеров заключается не в компоновке докеров, а в самой конфигурации демона. Что вы хотите сделать, так это изменить использование докеров сети по умолчанию, что делается путем передачи --bip=10.110.0.1/16 (обратите внимание на 1 в конце, так как вам нужен действующий IP-адрес для привязки докера) в скрипте запуска демона докера.

Поскольку вы не предоставили информацию о своей ОС, вы можете просто попробовать выполнить

docker daemon --bip=10.110.0.1/16

сменить сеть на 10.110.0.0/16

В моем окне OpenSuse я редактировал /etc/sysconfig/docker где я установил DOCKER_OPTS="--bip=10.110.0.1/16" чтобы получить тот же результат.

См. Официальную документацию для дальнейших инструкций: