Установка docker в mikrotik RouterOS - UnixHost Blog

Установка docker в mikrotik RouterOS - UnixHost Blog

Начиная с версии RouterOS v7.5 в роутерах mikrotik появилась возможность установки docker контейнеров. В данной статье мы разберемся как правильно подготовить роутер и как развернуть контейнер в RouterOS.

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

Если вы хотите установить routerOS на свой виртуальный сервер то вам стоит ознакомиться с данной инструкцией .

Поддержка контейнеров Docker появилась в операционной системы RouterOS 7.5, если версия вашей операционной системы ниже то вам необходимо обновить ее до самой последней версии.

В стандартный набор установленных дополнений RouterOS не входит дополнение container и для того чтобы его добавить, необходимо перейти на официальный сайт mikrotik и в разделе software скачать набор дополнений Extra packages предварительно выбрав архитектуру на которой установлена RouterOS.

Для RouterOS которая установлена на виртуальный сервер это X86 .

Распаковываем скачанный архив и загружаем файл с названием container-*.*.npk в корень вашего роутера. После загрузки файла перезагружаем виртуальную машину или роутер (System — Reboot), дополнение установится автоматически.

После перезапуска RouterOS открываем новое окно терминала и выполняем команду которая активирует режим контейнеров

После выполнения данной команды нам необходимо будет еще раз перегрузить роутер, на это у нас есть 5 минут. Выполняем еще одну перезагрузку.

После перезагрузки у вас появится новый пункт меню Container .

Для каждого контейнера который будет установлен в систему нам необходимо создать виртуальный интерфейс VETH. Переходим в Interfaces — вкладка VETH.

Указываем название интерфейса, адрес и шлюз.

Команда для добавление интерфейса через терминал

Также необходимо будет создать bridge интерфейс для того чтобы подключить контейнер к сети.

Дадим название нашему bridge интерфейсу docker, для этого перейдем в раздел Interfaces и во вкладке Interface добавим новый интерфейс типа Bridge.

Укажем IP адрес интерфейса bridge 172.17.0.1/24 для этого переходим в IP — Addresses — добавляем новый адрес 172.17.0.1/24 и назначаем его интерфейсу docker.

Добавим виртуальный порт veth1 в bridge docker.

Все действия которые мы сделали выше можно выполнить с помощью даных команд в терминале.

И настроим NAT для исходящего трафика.

В качестве примера мы установим docker контейнер блокировщика рекламы и нежелательных DNS запросов PiHole.

Для правильной работы контейнера PiHole необходимо указать несколько переменных.

Переходим в Container — вкладка Envs и добавляем три переменных:

Для добавления переменных в терминале выполняем следующую команду

Добавим точки монтирования для контейнера PiHole. Переходим во вкладку Mount в Container и добавляем две точки:

disk1 — номер смонтированного диска, если у вас несколько дисков то указывайте ваш

Для добавления образа нам необходимо добавить url поиска контейнеров. Нажмем на кнопку Config и в поле Registry URL укажем https://registry-1.docker.io а в Tmp dir /pull

Для установки контейнера все готово и мы можем перейти к созданию контейнера.

Во вкладке Container нажимаем кнопку + и заполняем следующие поля:

Установить контейнер можно командой в терминале

Нажимаем apply и дожидаемся пока контейнер загрузится и статус будет stopped. После этого мы можем запускать контейнер нажав на кнопку Start.

Последнее что нам осталось — пробросить порт веб интерфейса PiHole на внешний порт нашего сервера. Замените server_ip на IP адрес вашего роутера или сервера, а в to-addresses укажите IP адрес который вы назначили docker контейнеру, а dst-port на порт который вы хотите открыть для доступа к админ панели PiHole.

После этого открываем в барузере http://server_ip:8080 и вы попадаете в админ панель PiHole.

Вводим пароль который мы указывали в переменной WEBPASSWORD и входим в админ панель.

Переходим в настройки и убедимся, что все работает.

На этом настройка docker в mikrotik routeros и разворачивание pihole завершено.

И для того чтобы использовать IP адрес вашего сервера в качестве DNS сервера, достаточно указать IP адрес контейнера с PiHole в настройках RouterOS и активировать Allow Remote Requests.

А так же добавить два правила в Firewall

Recommended articles