Skip to content
InstagramYouTubeFacebook

Tutorial

RouterOS Containers: Docker op MikroTik

Hardloop Docker-styl containers op MikroTik RouterOS v7: aktiveer container-modus, stel veth-netwerk en berging op, en ontplooi op skaal.

Opsomming MikroTik RouterOS v7 kan Docker-versoenbare containers direk op die router hardloop, sodat DNS-filtrering, moniteringsagente en klein netwerkdienste langs die routing-vlak leef in plaas van op ‘n aparte boks. Hierdie gids dek die hardeware- en argitektuurvereistes, die veilige aktivering van container device-mode, die bou van veth- en brugnetwerke met NAT, die ontplooiing van jou eerste container, en die bestuur van containers oor ‘n vloot. RouterOS 7.23 (Mei 2026) het die katalogus van gereed-om-te-loop container-apps uitgebrei, wat dit ‘n praktiese opsie maak vir ISP’s en laboratoriumbouers eweneens.

MikroTik RouterOS container-argitektuurdiagram wat 'n router wys wat gestapelde Docker-styl diens-containers huisves

Wat Is Containers op MikroTik RouterOS?

Containers op MikroTik RouterOS is MikroTik se implementering van Linux-containers wat ‘n RouterOS v7-toestel toelaat om geïsoleerde, Docker-versoenbare toepassingsbeelde direk op die router te hardloop. Hulle werk met beelde van Docker Hub, GCR, Quay en ander registries, en hoewel RouterOS sy eie CLI-sintaksis gebruik in plaas van die docker-opdrag, is die onderliggende gedrag dieselfde — trek ‘n beeld, gee dit ‘n netwerk, koppel berging, en hardloop dit. (MikroTik-dokumentasie)

Vir ‘n ISP of ‘n laboratorium beteken dit dat klein netwerk-aangrensende dienste saam met die routing-vlak gehuisves kan word: ‘n Pi-hole- of AdGuard DNS-filter, ‘n moniteringsagent, ‘n reverse proxy, of ‘n IoT-brug. Die RouterOS 7.23 stabiele vrystelling op 25 Mei 2026 het ‘n lang lys gereed-om-te-loop apps bygevoeg — insluitend paperless-ngx, nextcloud, lorawan-stack, birdnet-go, en Docker-bestuur-voorkante soos portainer en dockge — saam met ‘n nuwe network-outgoing-access-skakelaar om ‘n container te blok om uitgaande verkeer te begin. (RouterOS 7.23 changelog)

Vereistes en Hardeware

Die container-pakket is versoenbaar met arm-, arm64- en x86-argitekture, en dit moet voor enigiets anders geïnstalleer word. Om ‘n afgeleë beeld te trek het baie vrye spasie nodig, dus beveel MikroTik eksterne berging eerder as die toestel se interne flash aan. (MikroTik-dokumentasie)

Beplan vir eksterne media op USB, SATA of NVMe, geformateer met ‘n lêerstelsel wat RouterOS ondersteun. MikroTik stel ‘n skyf voor wat in staat is tot minstens 100 MB/s sekwensiële deurset en 10K willekeurige IOPS — stadiger skywe maak beeldonttrekking pynlik lank. Vermy om container-volumes op ingeboude berging te plaas, wat klein is en uitslyt onder container-skryfpatrone. Toestelle met baie beperkte flash behoort vooraf-geboude beelde op die aangehegte skyf te gebruik in plaas daarvan om afgeleë te trek.

Aktiveer Container Device-Mode Veilig

Containers is by verstek gedeaktiveer en, met goeie rede, vereis fisiese toegang om aan te skakel. Aktiveer die kenmerk met:

/system/device-mode/update container=yes

RouterOS wag dan dat jy bevestig met ‘n druk op die reset-knoppie of ‘n koue herlaai. Hierdie fisiese-bevestigingshek is ‘n doelbewuste sekuriteitsbeheer: sodra container-modus aan is, kan containers op afstand bygevoeg, begin en verwyder word, en ‘n kwaadwillige beeld kan ‘n vastrapplek op die router word. MikroTik is reguit hieroor — as jou RouterOS-toestel gekompromitteer is, maak containers dit triviaal om kwaadwillige sagteware te installeer, en daar is geen sekuriteitswaarborg vir derdeparty-beelde nie.

Behandel die router wat containers huisves presies so veilig soos die minste-vertroude beeld wat jy daarop hardloop. Ontplooi slegs beelde wat jy vertrou, hou die toestel agter ‘n firewall, en hersien ons device-mode-sekuriteitsbedryfsgids voordat jy dit in produksie aktiveer.

Bou die Container-Netwerk

Containers het ‘n virtuele koppelvlak, ‘n brug en NAT nodig om die internet te bereik. Die patroon hieronder weerspieël “bridge”-netwerk in Docker. Skep eers ‘n veth-koppelvlak en ‘n brug wat sy gateway-adres deel:

/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

Een veth kan baie containers bedien, en die skep van bykomende veth/brug-pare laat jou toe om groepe containers van mekaar te isoleer. As jy nuut is by RouterOS-bridging, verduidelik ons brugkonfigurasie-tutoriaal die onderliggende model. Voeg vervolgens ‘n masquerade-reël by sodat uitgaande container-verkeer vertaal word — sien die NAT-konfigurasiegids vir die volle prentjie:

/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24

Ontplooi Jou Eerste Container

Wys die registry en die tydelike onttrekkingsgids na jou eksterne skyf, en voeg dan die beeld by. Die Pi-hole-voorbeeld hieronder is die kanonieke een uit MikroTik se dokumentasie:

/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

Om die container by te voeg begin die aflaai en onttrekking maar hardloop dit nie. Kontroleer vordering met /container/print en wag totdat status=stopped, begin dit dan:

/container/start pihole

Publiseer ten slotte die diens deur ‘n poort van die router na die veth-adres aan te stuur:

/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 antwoord nou op die router se LAN-IP. Om DNS-filtrering op hierdie manier te hardloop is ‘n alternatief vir RouterOS se inheemse bloklyste — as jy die geen-container-roete verkies, sien ons RouterOS adlist-tutoriaal.

Bestuur Containers Oor ‘n Vloot

‘n Enkele container op een router is maklik. Die werklike bedryfsvraag vir ‘n ISP is konsekwentheid: dieselfde beeld, dieselfde veth- en NAT-skema, dieselfde bergingsuitleg, en dieselfde start-on-boot- en geheuegrense op elke toestel. RouterOS gee jou die primitiewe — start-on-boot=yes oorleef herlaaie, en memory-high of memory-max beperk RAM per container sodat ‘n op-loop-diens nie die routing-vlak kan uithonger nie:

/container/config/set memory-high=200M
/container/set pihole start-on-boot=yes

Die moeilike deel is om dit identies te doen oor dosyne of honderde afgeleë routers, en dan te bewys dat elkeen werklik weer opgekom het na ‘n herlaai — veral wanneer die toestel agter CGNAT sit en jy nie eenvoudig sy openbare IP kan bereik nie.

Wenke

  • Hou elke container-volume op die eksterne skyf; nooit op interne NAND nie.
  • Gebruik ‘n aparte veth/brug-paar om onvertroude containers van vertroude te isoleer.
  • Stel memory-max op enigiets wat jy nie ten volle vertrou nie om die router responsief te hou.
  • Vir ‘n skoon toetsbed voordat jy produksie raak, hardloop dieselfde beelde op ‘n gevirtualiseerde CHR-instansie voordat jy na fisiese routers ontplooi.

Neem die Volgende Stap

Containers maak ‘n MikroTik-router ‘n klein toepassingsgasheer, maar ‘n vloot van daardie gashere het orkestrasie nodig. MKController templeer RouterOS-konfigurasie sentraal, pas dit toe op elke toestel in jou inventaris, en volg drift sodat jy kan sien watter router afgewyk het — en deur NATCloud bereik dit toestelle agter CGNAT om te bevestig dat ‘n container na onderhoud herbegin het. Dit sluit die gaping tussen die handmatige konfigurasie van een container en die betroubare bedryf daarvan oor ‘n hele ISP-netwerk.

Begin jou gratis MKController-proeftydperk