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

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

Профессиональная настройка MikroTik
Без предоплаты

Telegram: @Engineer_MikroTik

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

Установка Container

Пакет

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

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

Активация

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

/system/device-mode/update container=yes

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

Проверка

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

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

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

Создание 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
Запуск контейнеров

Запуск

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

Top