Найти в Дзене
Настройка MikroTik

Запуск контейнеров

Сontainer на MikroTik как Docker на Linux, за исключением типа процессора и жизненного цикла контейнера. Я не рекомендую использовать контейнеры на MikroTik, для этого есть родные среды в виде Linux машин и другой виртуализации на мощном железе. Но если хочется — давайте запустим. Нужен пакет container из набора Extra: Включение контейнера: /system/device-mode/update container=yes После выполнения команды, будет 5 минут для сброса питания или нажатия кнопки сброса. Для CHR нужно принудительное отключение VM. Проверка статуса и ответ, что контейнер работает: system/device-mode/print
mode: enterprise
container: yes /interface veth
add address=172.17.0.2/24 gateway=172.17.0.1 gateway6="" name=veth /interface bridge
add name=Bridge-Container /interface bridge port
add bridge=Bridge-Container interface=veth1 /ip address
add address=172.17.0.1/24 interface=Bridge-Container network=172.17.0.0 /ip firewall nat
add action=masquerade chain=srcnat comment="NAT Container" out-interface-l
Оглавление

Сontainer на MikroTik как Docker на Linux, за исключением типа процессора и жизненного цикла контейнера.

Я не рекомендую использовать контейнеры на MikroTik, для этого есть родные среды в виде Linux машин и другой виртуализации на мощном железе. Но если хочется — давайте запустим.

Установка Container

Пакет

Нужен пакет container из набора Extra:

Установленный пакет container
Установленный пакет container

Активация

Включение контейнера:

/system/device-mode/update container=yes

После выполнения команды, будет 5 минут для сброса питания или нажатия кнопки сброса. Для CHR нужно принудительное отключение VM.

Проверка

Проверка статуса и ответ, что контейнер работает:

system/device-mode/print
mode: enterprise
container: yes

Настройка сети

Создание VETH

Interface > VETH
Виртуальный интерфейс с уже заданными настройками для подключения в контейнер
Interface > VETH Виртуальный интерфейс с уже заданными настройками для подключения в контейнер

/interface veth
add address=172.17.0.2/24 gateway=172.17.0.1 gateway6="" name=veth

Создание bridge

Для отделения сети контейнеров от локальной сети создаем отдельный Bridge-Container
Для отделения сети контейнеров от локальной сети создаем отдельный Bridge-Container

/interface bridge
add name=Bridge-Container

В него добавляем созданный veth1 интерфейс
В него добавляем созданный veth1 интерфейс

/interface bridge port
add bridge=Bridge-Container interface=veth1

Созданный Bridge-Container будет шлюзом для сети контейнеров
Созданный Bridge-Container будет шлюзом для сети контейнеров

/ip address
add address=172.17.0.1/24 interface=Bridge-Container network=172.17.0.0

NAT для контейнеров

Выходящий интерфейс
Выходящий интерфейс
Режим маскарад
Режим маскарад

/ip firewall nat
add action=masquerade chain=srcnat comment="NAT Container" out-interface-list=WAN src-address=172.17.0.0/24

Подробнее про правильный NAT

Установка Nginx

Делаем точки монтирования

/container/mounts/add dst=/etc/nginx/nginx.conf name=nginx_conf src=/usb1/nginx/nginx.conf
/container/mounts/add dst=/etc/nginx/certs name=
certs src=/usb1/nginx/certs
/container/mounts/add dst=/data name=
nginx_data src=/usb1/nginx/data
/container/mounts/add dst=/etc/nginx/conf.d name=
nginx_confd src=/usb1/nginx/config

/container/add remote-image=nginx:1.25.3-alpine interface=veth1 root-dir=usb1/docker/nginx mounts=nginx_conf,certs,nginx_data,nginx_confd

После установки можно запустить
После установки можно запустить

И получить доступ к контейнеру по IP 172.17.0.2, открыв в браузере

nginx-alpine
nginx-alpine

Установка Pi-hole

Ставить будем Pi-hole согласно официальной документации на help.mikrotik.com

Переменные Envs

Параметры, которые будет получать контейнер при (первом?) запуске
Параметры, которые будет получать контейнер при (первом?) запуске

/container/envs/add name=pihole_envs key=TZ value="Europe/Moscow"
/container/envs/add name=pihole_envs key=WEBPASSWORD value="1q2w3e4r"
/container/envs/add name=pihole_envs key=DNSMASQ_USER value="root"

Точки монтирования

Директории и файлы, которые монтируются в контейнер для удобного доступа
Директории и файлы, которые монтируются в контейнер для удобного доступа

/container mounts
add dst=/etc/pihole name=etc_pihole src=/disk1/etc
add dst=/etc/dnsmasq.d name=dnsmasq_pihole src=/disk1/etc-dnsmasq.d

Общая настройка

Указываем откуда скачиваем контейнер и ограничиваем использование оперативной памяти в 200Мб
Указываем откуда скачиваем контейнер и ограничиваем использование оперативной памяти в 200Мб

/container config
set ram-high=200 registry-url=https://registry-1.docker.io tmpdir=/pull

Скачивание контейнера

/container/add remote-image=pihole/pihole:
latest interface=veth1 root-dir=disk1/pihole mounts=dnsmasq_pihole,etc_pihole envl
ist=pihole_envs

-13

Запуск

После скачивания и запуска кнопкой Start — заходим через браузер аналогично nginx

СЕТЕВЫЕ УСЛУГИ

  • Настройка
  • Мониторинг
  • Консультация
  • Подбор оборудования
  • Все услуги без предоплаты
  • Работаю с юридическими и физическими лицами