В настоящее время я использую 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"
чтобы получить тот же результат.
См. Официальную документацию для дальнейших инструкций: