Preskočiť na obsah
InstagramYouTubeFacebook

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í.

Architektonický diagram kontajnerov MikroTik RouterOS zobrazujúci router hostiaci naskladané servisné kontajnery typu Docker

Č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=yes

RouterOS 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=veth1

Jedno 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/24

Nasaď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=yes

Pridanie 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 pihole

Nakoniec 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=80

Pi-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-max na č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.

Spustite svoju bezplatnú skúšobnú verziu MKController