Tutorial
RouterOS Containers: Docker na MikroTiku
Spusťte kontejnery typu Docker na MikroTik RouterOS v7: zapněte režim kontejnerů, nastavte síť veth a úložiště, pak nasaďte a spravujte ve velkém.
Shrnutí MikroTik RouterOS v7 dokáže spouštět kontejnery kompatibilní s Dockerem přímo na routeru, takže DNS filtrování, monitorovací agenti a malé síťové služby běží vedle směrovací roviny místo na samostatném zařízení. Tento průvodce pokrývá požadavky na hardware a architekturu, bezpečné zapnutí režimu zařízení pro kontejnery, sestavení sítě veth a bridge s NAT, nasazení vašeho prvního kontejneru a správu kontejnerů napříč flotilou. RouterOS 7.23 (květen 2026) rozšířil katalog kontejnerových aplikací připravených ke spuštění, čímž z toho učinil praktickou volbu pro poskytovatele i pro laboratorní nadšence.
Co Jsou Kontejnery na MikroTik RouterOS?
Kontejnery na MikroTik RouterOS jsou implementací linuxových kontejnerů od MikroTiku, která umožňuje zařízení s RouterOS v7 spouštět izolované aplikační obrazy kompatibilní s Dockerem přímo na routeru. Pracují s obrazy z Docker Hub, GCR, Quay a dalších registrů, a přestože RouterOS používá vlastní syntaxi CLI místo příkazu docker, základní chování je stejné — stáhnout obraz, dát mu síť, připojit úložiště a spustit jej. (Dokumentace MikroTik)
Pro poskytovatele nebo laboratoř to znamená, že malé síťově blízké služby lze umístit ke směrovací rovině: DNS filtr Pi-hole nebo AdGuard, monitorovací agent, reverzní proxy nebo IoT bridge. Stabilní vydání RouterOS 7.23 z 25. května 2026 přidalo dlouhý seznam aplikací připravených ke spuštění — včetně paperless-ngx, nextcloud, lorawan-stack, birdnet-go a frontendů pro správu Dockeru jako portainer a dockge — spolu s novým přepínačem network-outgoing-access, který brání kontejneru v zahájení odchozího provozu. (Changelog RouterOS 7.23)
Požadavky a Hardware
Balíček container je kompatibilní s architekturami arm, arm64 a x86 a musí být nainstalován dříve než cokoli jiného. Stažení vzdáleného obrazu vyžaduje hodně volného místa, takže MikroTik doporučuje externí úložiště místo interní flash paměti zařízení. (Dokumentace MikroTik)
Počítejte s externími médii přes USB, SATA nebo NVMe, naformátovanými souborovým systémem, který RouterOS podporuje. MikroTik doporučuje disk schopný alespoň 100 MB/s sekvenční propustnosti a 10K náhodných IOPS — pomalejší disky činí rozbalování obrazu trýznivě dlouhým. Vyhněte se umisťování svazků kontejnerů na vestavěné úložiště, které je malé a opotřebovává se pod zápisovými vzorci kontejnerů. Zařízení s velmi omezenou flash pamětí by měla používat předem připravené obrazy na připojeném disku místo vzdáleného stahování.
Bezpečné Zapnutí Režimu Zařízení pro Kontejnery
Kontejnery jsou ve výchozím stavu vypnuté a z dobrého důvodu vyžadují pro zapnutí fyzický přístup. Funkci zapnete příkazem:
/system/device-mode/update container=yesRouterOS poté čeká, až potvrdíte stiskem tlačítka reset nebo studeným restartem. Tato brána fyzického potvrzení je záměrnou bezpečnostní kontrolou: jakmile je režim kontejnerů zapnutý, lze kontejnery vzdáleně přidávat, spouštět a odebírat a škodlivý obraz se může stát opěrným bodem na routeru. MikroTik je v tom přímočarý — pokud je vaše zařízení s RouterOS kompromitováno, kontejnery činí instalaci škodlivého softwaru triviální a pro obrazy třetích stran neexistuje žádná bezpečnostní záruka.
Považujte router hostující kontejnery za přesně tak bezpečný jako nejméně důvěryhodný obraz, který na něm spouštíte. Nasazujte pouze obrazy, kterým důvěřujete, mějte zařízení za firewallem a před zapnutím v produkci si přečtěte našeho průvodce bezpečným provozem režimu zařízení.
Sestavení Kontejnerové Sítě
Kontejnery potřebují virtuální rozhraní, bridge a NAT, aby dosáhly na internet. Následující vzor odráží síť typu „bridge” v Dockeru. Nejprve vytvořte rozhraní veth a bridge, který sdílí jeho adresu brány:
/interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1/interface/bridge/add name=containers/ip/address/add address=172.17.0.1/24 interface=containers/interface/bridge/port add bridge=containers interface=veth1Jeden veth může obsloužit mnoho kontejnerů a vytvoření dalších párů veth/bridge umožňuje izolovat skupiny kontejnerů od sebe navzájem. Pokud jste v bridgingu na RouterOS noví, náš tutoriál ke konfiguraci bridge vysvětluje základní model. Dále přidejte pravidlo masquerade, aby byl odchozí provoz kontejnerů překládán — úplný obrázek najdete v průvodci konfigurací NAT:
/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24Nasazení Vašeho Prvního Kontejneru
Nasměrujte registry a dočasný adresář pro rozbalení na váš externí disk a poté přidejte obraz. Následující příklad Pi-hole je ten kanonický z dokumentace MikroTiku:
/container/config/set registry-url=https://registry-1.docker.io tmpdir=disk1/tmp/container/add remote-image=pihole/pihole interface=veth1 root-dir=disk1/images/pihole name=pihole logging=yesPřidání kontejneru spustí stahování a rozbalení, ale nespustí jej. Zkontrolujte průběh pomocí /container/print a počkejte, dokud nebude status=stopped, poté jej spusťte:
/container/start piholeNakonec zveřejněte službu přesměrováním portu z routeru na adresu veth:
/ip firewall nat add action=dst-nat chain=dstnat dst-address=192.168.88.1 dst-port=80 protocol=tcp to-addresses=172.17.0.2 to-ports=80Pi-hole nyní odpovídá na LAN IP routeru. Provozovat DNS filtrování tímto způsobem je alternativou k nativním blokovacím seznamům RouterOS — pokud preferujete cestu bez kontejnerů, podívejte se na náš tutoriál k RouterOS adlist.
Správa Kontejnerů Napříč Flotilou
Jeden kontejner na jednom routeru je snadný. Skutečnou provozní otázkou pro poskytovatele je konzistence: stejný obraz, stejné schéma veth a NAT, stejné rozložení úložiště a stejné start-on-boot a limity paměti na každém zařízení. RouterOS vám dává základní stavební prvky — start-on-boot=yes přežije restarty a memory-high nebo memory-max omezují RAM na kontejner, aby zdivočelá služba nevyhladověla směrovací rovinu:
/container/config/set memory-high=200M/container/set pihole start-on-boot=yesTěžká část je dělat to identicky napříč desítkami nebo stovkami vzdálených routerů a poté prokázat, že se každý z nich po restartu skutečně znovu nahodil — zvláště když zařízení sedí za CGNAT a nemůžete jednoduše dosáhnout na jeho veřejnou IP.
Tipy
- Mějte každý svazek kontejneru na externím disku; nikdy na interním NAND.
- Použijte samostatný pár veth/bridge k izolaci nedůvěryhodných kontejnerů od důvěryhodných.
- Nastavte
memory-maxna cokoli, čemu plně nedůvěřujete, aby router zůstal responzivní. - Pro čistou testovací zónu, než se dotknete produkce, spusťte stejné obrazy na virtualizované instanci CHR, než je nasadíte na fyzické routery.
Udělejte Další Krok
Kontejnery promění MikroTik router v drobného aplikačního hostitele, ale flotila takových hostitelů potřebuje orchestraci. MKController centrálně vytváří šablony konfigurace RouterOS, aplikuje je na každé zařízení ve vašem inventáři a sleduje drift, takže vidíte, který router se odchýlil — a prostřednictvím NATCloud dosáhne na zařízení za CGNAT, aby potvrdil, že se kontejner po údržbě restartoval. To uzavírá mezeru mezi ruční konfigurací jednoho kontejneru a jejich spolehlivým provozováním napříč celou sítí poskytovatele.