Обновлено: 08.03.2026

Контейнеры

DockerКонтейнерыOCI

Контейнеры в RouterOS 7

Начиная с RouterOS 7.4, MikroTik поддерживает запуск OCI-совместимых контейнеров. Это позволяет запускать Docker-образы прямо на роутере — DNS-фильтры, мониторинг, прокси и другие сервисы.

ℹ️
Контейнеры доступны на устройствах с архитектурой ARM, ARM64 и x86. Необходим внешний накопитель (USB или microSD) для хранения данных.

Подготовка

# Шаг 1: Включить поддержку контейнеров
/system/device-mode/update container=yes
# Подтвердите физической кнопкой на устройстве, перезагрузите

# Шаг 2: Настроить реестр и хранилище
/container/config/set     registry-url=https://registry-1.docker.io     tmpdir=usb1/containers/tmp

# Шаг 3: Создать veth-интерфейс
/interface/veth/add name=veth-dns     address=172.17.0.2/24 gateway=172.17.0.1

# Шаг 4: IP на шлюзовой стороне
/ip/address/add address=172.17.0.1/24 interface=veth-dns

# Шаг 5: NAT для контейнера (доступ в интернет)
/ip/firewall/nat/add chain=srcnat     src-address=172.17.0.0/24 action=masqueradeRouterOS CLI

Сетевой стек контейнеров

Каждый контейнер использует veth-интерфейс — виртуальный Ethernet-адаптер. Варианты подключения:

РежимОписаниеКогда использовать
veth + IPОтдельная подсеть, NAT через роутерБольшинство случаев
veth + bridgeКонтейнер в LAN-bridgeDHCP/DNS в LAN-сегменте
veth + VLANКонтейнер в определённом VLANИзоляция по VLAN

Пример: Pi-hole

# Переменные окружения
/container/envs
add name=pihole key=TZ value="Europe/Moscow"
add name=pihole key=WEBPASSWORD value="MyP@ss123"
add name=pihole key=DNSMASQ_LISTENING value="all"

# Монтирование для persistent-данных
/container/mounts
add name=pihole-etc src=usb1/pihole/etc dst=/etc/pihole
add name=pihole-dnsmasq src=usb1/pihole/dnsmasq dst=/etc/dnsmasq.d

# Создать и запустить контейнер
/container/add remote-image=pihole/pihole:latest     interface=veth-dns root-dir=usb1/pihole/root     envlist=pihole mounts=pihole-etc,pihole-dnsmasq     start-on-boot=yes logging=yes

/container/start 0

# Перенаправить DNS на Pi-hole
/ip/firewall/nat/add chain=dstnat protocol=udp     dst-port=53 in-interface=bridge-lan     action=dst-nat to-addresses=172.17.0.2RouterOS CLI

Пример: AdGuard Home

/interface/veth/add name=veth-adguard     address=172.17.0.3/24 gateway=172.17.0.1

/container/add remote-image=adguard/adguardhome:latest     interface=veth-adguard root-dir=usb1/adguard     start-on-boot=yes

# Веб-интерфейс: http://172.17.0.3:3000RouterOS CLI

Ограничения и рекомендации

⚠️
  • Минимум 256 MB RAM, рекомендовано 512+ MB
  • Обязателен внешний накопитель (USB/SD) — NAND на устройстве слишком мал
  • Нет поддержки docker-compose — каждый контейнер настраивается отдельно
  • Нет bind mount для файлов (только директории)
  • Перезагрузка контейнера при обновлении RouterOS
  • Контейнеры не изолированы от хоста так же надёжно, как в полноценном Docker