Как настроить докер для ограничения диапазона портов для раскручивания контейнеров

Мы используем Jenkins и докер для создания CI/CD. Наш Jenkins настроен как главный / подчиненный, где подчиненные распределены по разным центрам обработки данных. когда должна произойти новая сборка, мастер Jenkins идентифицирует раба в одном из DC, раскручивает эфемерный контейнер и срывает его, как только это будет сделано.

Из-за ограничений брандмауэра у нас только около 10 портов, открытых для ведомых в некоторых DC. например, Port Range: 8000 - 8010. Обычно Docker использует диапазоны портов Linux от 32768 до 61000. Проблема в том, что Jenkins master не может общаться с контейнерами, если хост-порт связан с 8000 - 8010. У подключаемого модуля Jenkins есть ограничение, где Вы не можете связать несколько портов (может быть, я ошибаюсь здесь). Я хотел бы знать, можем ли мы каким-либо образом настроить это в конце докера или в плагине док-станции Jenkins.

1 ответ

Решение

После исследований на многих форумах и общения с людьми, это невозможно или даже не рекомендуется делать. Рекомендуемая реализация для преодоления этой проблемы - перейти на Docker Swarm,

  1. где у вас есть только одно виртуальное облако докера
  2. которая заботится о том, чтобы закрутить контейнеры за кулисами и держать их готовыми к употреблению даже до того, как возникнет такая необходимость Варианты конфигурации являются гибкими.

Узнайте больше о Swarm здесь https://docs.docker.com/swarm/

Другие вопросы по тегам