Как в Synology Container Manager проектах использовать одну сеть

Всем привет!!!

Если вы задумывались как в YML файле использовать существующую сеть вместо того что бы создавать каждый раз новую, то вы пришли по адресу. Я разобрался и поделился со всеми этой информацией.

Начиная в DSM 7.2 компания Synology не просто переименовала Docker в Container Manager, но и добавила дополнительный функционал в графический интерфейс управления и настройки контейнеров Docker. Одним из таких приятных нововведений стала вкладка проекты.

Проекты представляют собой ничто иное как графический интерфейс для Docker Compose. Последний предоставляет возможность быстрой настройки одного или даже связки нескольких контейнеров используя текстовый файл YML. Это позволяет в Container Manager упростить задачу установки и настройки контейнеров Docker, так как не придется проходить мастер настройки со множеством окон и параметров, а достаточно просто скопировать один текстовый файл и дело попрет.

Но тут вышла небольшая проблема. Дело в том, что по умолчанию docker compose создает для каждого проекта свою отдельную сеть и называет ее имя-проекта_default со своими уникальными IP адресами На первый взгляд и я подумал ничего страшного. Но когда таких проектов много или их нужно создавать пачками для теста, проверять и удалять, то выходит эта самая проблема.

Дело в том, что если на Synology включен фаервол, то каждую такую IP сеть нужно разрешать на нем. Иначе фаервол запрещает контейнеру доступ и он не работает по сети, нет интернета и прочие неприятные вещи. Проблем нет, когда таких проектов не много, а когда много это проблема.

Решение простое. В YML файле нужно указать использовать одну и туже сеть. Тогда эту сеть разрешаем на фаерволе и сколько бы не создавали проектов они сразу все будут работать, так как будут создаваться в уже готовую разрешенную сеть. Подвох только в том, что в сеть по умолчанию с именем bridge система не дает добавлять новые проекты. Для этого нужно создать свою уникальную сеть.

Переходим в Container Manager, вкладка сеть и создаем новую с параметрами по умолчанию. Я придумал ей имя mynetwork. Затем не забудьте IP сеть добавить в разрешающее правило фаервола выше запрещающего.

Теперь остается в каждом YAM файле проекта указывать эту сеть. Как это сделать я покажу на примере openspeedtest

version: '3.3'
services:
    speedtest:
        restart: unless-stopped
        container_name: openspeedtest
        ports:
            - '3000:3000'
            - '3001:3001'
        image: openspeedtest/latest
        networks:
            - mynetwork

networks:
  mynetwork:
    external: true

К конфигурации контейнера указывается использовать сеть mynetwork, а в конце файла указывается не создавать эту сеть mynetwork, а использовать существующую.

Теперь вы знаете как в Synology Container Manager проектах использовать одну сеть.

Подписаться
Уведомить о
guest
15 Комментарий
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии