Tutorial
Kontajnery RouterOS: Docker na MikroTik
Spustite kontajnery typu Docker na MikroTik RouterOS v7: zapnite režim kontajnerov, nastavte sieť veth a úložisko, potom spravujte vo veľkom.
Zhrnutie MikroTik RouterOS v7 dokáže spúšťať kontajnery kompatibilné s Dockerom priamo na routeri, takže filtrovanie DNS, monitorovacie agenty a malé sieťové služby žijú vedľa smerovacej roviny namiesto samostatnej krabice. Táto príručka pokrýva požiadavky na hardvér a architektúru, bezpečné zapnutie device-mode pre kontajnery, vybudovanie siete veth a bridge s NAT, nasadenie vášho prvého kontajnera a správu kontajnerov naprieč celou flotilou. RouterOS 7.23 (máj 2026) rozšíril katalóg pripravených kontajnerových aplikácií, čím sa toto stalo praktickou možnosťou pre ISP aj pre staviteľov laboratórií.
Čo Sú Kontajnery na MikroTik RouterOS?
Kontajnery na MikroTik RouterOS sú implementáciou linuxových kontajnerov od MikroTiku, ktorá umožňuje zariadeniu RouterOS v7 spúšťať izolované, s Dockerom kompatibilné obrazy aplikácií priamo na routeri. Pracujú s obrazmi z Docker Hub, GCR, Quay a ďalších registrov, a hoci RouterOS používa vlastnú syntax CLI namiesto príkazu docker, základné správanie je rovnaké — stiahnete obraz, dáte mu sieť, pripojíte úložisko a spustíte ho. (Dokumentácia MikroTik)
Pre ISP alebo laboratórium to znamená, že malé služby blízke sieti môžu byť umiestnené spolu so smerovacou rovinou: DNS filter Pi-hole alebo AdGuard, monitorovací agent, reverzný proxy alebo IoT mostík. Stabilné vydanie RouterOS 7.23 z 25. mája 2026 pridalo dlhý zoznam pripravených aplikácií — vrátane paperless-ngx, nextcloud, lorawan-stack, birdnet-go a front-endov na správu Dockeru ako portainer a dockge — spolu s novým prepínačom network-outgoing-access, ktorý zabráni kontajneru iniciovať odchádzajúcu prevádzku. (Changelog RouterOS 7.23)
Požiadavky a Hardvér
Balík container je kompatibilný s architektúrami arm, arm64 a x86 a musí byť nainštalovaný pred čímkoľvek iným. Stiahnutie vzdialeného obrazu si vyžaduje veľa voľného miesta, preto MikroTik odporúča externé úložisko namiesto internej flash pamäte zariadenia. (Dokumentácia MikroTik)
Počítajte s externými médiami cez USB, SATA alebo NVMe, naformátovanými súborovým systémom, ktorý RouterOS podporuje. MikroTik odporúča disk schopný aspoň 100 MB/s sekvenčnej priepustnosti a 10K náhodných IOPS — pomalšie disky robia rozbaľovanie obrazu mučivo dlhým. Vyhnite sa umiestňovaniu kontajnerových zväzkov na vstavané úložisko, ktoré je malé a opotrebúva sa pod zápisovými vzormi kontajnerov. Zariadenia s veľmi obmedzenou flash pamäťou by mali použiť vopred zostavené obrazy na pripojenom disku namiesto sťahovania na diaľku.
Bezpečne Zapnite Device-Mode pre Kontajnery
Kontajnery sú predvolene vypnuté a z dobrého dôvodu vyžadujú fyzický prístup na zapnutie. Funkciu zapnite príkazom:
/system/device-mode/update container=yesRouterOS potom čaká, kým potvrdíte stlačením tlačidla reset alebo studeným reštartom. Táto brána fyzického potvrdenia je zámerná bezpečnostná kontrola: keď je režim kontajnerov zapnutý, kontajnery možno pridávať, spúšťať a odstraňovať na diaľku a škodlivý obraz sa môže stať oporným bodom na routeri. MikroTik je v tom priamy — ak je vaše zariadenie RouterOS kompromitované, kontajnery robia inštaláciu škodlivého softvéru triviálnou a pre obrazy tretích strán neexistuje žiadna bezpečnostná záruka.
Považujte router hostiaci kontajnery presne za taký bezpečný ako najmenej dôveryhodný obraz, ktorý na ňom spúšťate. Nasadzujte iba obrazy, ktorým dôverujete, udržujte zariadenie za firewallom a pred zapnutím tohto v produkcii si prečítajte našu príručku bezpečnostnej prevádzky device-mode.
Vybudujte Kontajnerovú Sieť
Kontajnery potrebujú virtuálne rozhranie, bridge a NAT, aby sa dostali na internet. Vzor nižšie zrkadlí sieť typu „bridge” v Dockeri. Najprv vytvorte rozhranie veth a bridge, ktorý zdieľa 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=veth1Jedno veth dokáže obslúžiť mnoho kontajnerov a vytvorenie ďalších párov veth/bridge vám umožní izolovať skupiny kontajnerov navzájom. Ak ste v bridgovaní RouterOS noví, náš návod na konfiguráciu bridge vysvetľuje základný model. Ďalej pridajte pravidlo masquerade, aby sa odchádzajúca kontajnerová prevádzka prekladala — celý obraz nájdete v príručke konfigurácie NAT:
/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24Nasaďte Svoj Prvý Kontajner
Nasmerujte registry a dočasný adresár na rozbaľovanie na váš externý disk a potom pridajte obraz. Príklad Pi-hole nižšie je kanonický z dokumentácie 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=yesPridanie kontajnera spustí sťahovanie a rozbaľovanie, ale nespustí ho. Skontrolujte priebeh príkazom /container/print a počkajte, kým status=stopped, potom ho spustite:
/container/start piholeNakoniec zverejnite službu presmerovaním portu z routera 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 teraz odpovedá na LAN IP routera. Spúšťanie filtrovania DNS týmto spôsobom je alternatívou k natívnym blokovacím zoznamom RouterOS — ak uprednostňujete cestu bez kontajnera, pozrite si náš návod na RouterOS adlist.
Spravujte Kontajnery Naprieč Flotilou
Jeden kontajner na jednom routeri je jednoduchý. Skutočnou prevádzkovou otázkou pre ISP je konzistentnosť: rovnaký obraz, rovnaká schéma veth a NAT, rovnaké rozloženie úložiska a rovnaké limity start-on-boot a pamäte na každom zariadení. RouterOS vám dáva primitíva — start-on-boot=yes prežije reštarty a memory-high alebo memory-max obmedzujú RAM na kontajner, takže služba mimo kontroly nemôže vyhladovať smerovaciu rovinu:
/container/config/set memory-high=200M/container/set pihole start-on-boot=yesŤažká časť je urobiť to identicky naprieč desiatkami či stovkami vzdialených routerov a potom dokázať, že každý sa po reštarte naozaj vrátil — najmä keď zariadenie sedí za CGNAT a nemôžete sa jednoducho dostať na jeho verejnú IP.
Tipy
- Udržujte každý kontajnerový zväzok na externom disku; nikdy na internom NAND.
- Použite samostatný pár veth/bridge na izoláciu nedôveryhodných kontajnerov od dôveryhodných.
- Nastavte
memory-maxna čokoľvek, čomu plne nedôverujete, aby router zostal reaktívny. - Pre čisté testovacie prostredie pred zásahom do produkcie spustite rovnaké obrazy na virtualizovanej inštancii CHR pred nasadením na fyzické routery.
Urobte Ďalší Krok
Kontajnery menia router MikroTik na malého hostiteľa aplikácií, ale flotila takýchto hostiteľov potrebuje orchestráciu. MKController centrálne vytvára šablóny konfigurácie RouterOS, aplikuje ich na každé zariadenie vo vašom inventári a sleduje odchýlky, takže vidíte, ktorý router sa odklonil — a cez NATCloud sa dostane k zariadeniam za CGNAT, aby potvrdil, že sa kontajner po údržbe reštartoval. To uzatvára medzeru medzi ručnou konfiguráciou jedného kontajnera a ich spoľahlivou prevádzkou naprieč celou sieťou ISP.