Tutorial
RouterOS konteineri: Docker uz MikroTik
Palaidiet Docker konteinerus uz MikroTik RouterOS v7: iespējojiet konteineru režīmu, izveidojiet veth tīklu un krātuvi, pēc tam izvietojiet un pārvaldiet plaši.
Kopsavilkums MikroTik RouterOS v7 var palaist ar Docker saderīgus konteinerus tieši uz maršrutētāja, tāpēc DNS filtrēšana, monitoringa aģenti un nelieli tīkla pakalpojumi atrodas blakus maršrutēšanas plaknei, nevis atsevišķā ierīcē. Šī rokasgrāmata aptver aparatūras un arhitektūras prasības, konteineru device-mode drošu iespējošanu, veth un bridge tīkla izveidi ar NAT, pirmā konteinera izvietošanu un konteineru pārvaldību visā flotē. RouterOS 7.23 (2026. gada maijs) paplašināja gatavu palaišanai konteineru lietotņu katalogu, padarot to par praktisku risinājumu gan ISP, gan laboratoriju veidotājiem.
Kas Ir Konteineri uz MikroTik RouterOS?
Konteineri uz MikroTik RouterOS ir MikroTik īstenotie Linux konteineri, kas ļauj RouterOS v7 ierīcei palaist izolētus, ar Docker saderīgus lietojumprogrammu attēlus tieši uz maršrutētāja. Tie darbojas ar attēliem no Docker Hub, GCR, Quay un citiem reģistriem, un, lai gan RouterOS izmanto savu CLI sintaksi docker komandas vietā, pamatā esošā uzvedība ir tāda pati — izvilkt attēlu, piešķirt tam tīklu, pievienot krātuvi un palaist to. (MikroTik dokumentācija)
ISP vai laboratorijai tas nozīmē, ka nelielus tīklam pietuvinātus pakalpojumus var izvietot kopā ar maršrutēšanas plakni: Pi-hole vai AdGuard DNS filtru, monitoringa aģentu, reverso proxy vai IoT tiltu. RouterOS 7.23 stabilais laidiens 2026. gada 25. maijā pievienoja garu gatavu lietotņu sarakstu — tostarp paperless-ngx, nextcloud, lorawan-stack, birdnet-go un Docker pārvaldības saskarnes, piemēram, portainer un dockge — līdzās jaunam network-outgoing-access slēdzim, kas bloķē konteineru no izejošā datu plūsmas uzsākšanas. (RouterOS 7.23 izmaiņu žurnāls)
Prasības un Aparatūra
Container pakotne ir saderīga ar arm, arm64 un x86 arhitektūrām, un tā ir jāinstalē pirms visa pārējā. Attālā attēla izvilkšanai nepieciešams daudz brīvas vietas, tāpēc MikroTik iesaka ārēju krātuvi, nevis ierīces iekšējo zibatmiņu. (MikroTik dokumentācija)
Plānojiet ārējos datu nesējus, izmantojot USB, SATA vai NVMe, formatētus ar RouterOS atbalstītu failu sistēmu. MikroTik iesaka disku, kas spēj nodrošināt vismaz 100 MB/s secīgu caurlaidspēju un 10K nejaušus IOPS — lēnāki diski padara attēlu izpakošanu mokoši ilgu. Izvairieties no konteineru sējumu izvietošanas iebūvētajā krātuvē, kas ir maza un nodilst zem konteineru rakstīšanas modeļiem. Ierīcēm ar ļoti ierobežotu zibatmiņu jāizmanto iepriekš izveidoti attēli pievienotajā diskā, nevis tos jāizvelk attālināti.
Konteineru Device-Mode Droša Iespējošana
Konteineri pēc noklusējuma ir atspējoti un, ar pamatotu iemeslu, ieslēgšanai prasa fizisku piekļuvi. Iespējojiet funkciju ar:
/system/device-mode/update container=yesPēc tam RouterOS gaida, līdz apstiprināsiet ar reset pogas nospiešanu vai auksto pārstartēšanu. Šie fiziskās apstiprināšanas vārti ir apzināta drošības kontrole: tiklīdz konteineru režīms ir ieslēgts, konteinerus var pievienot, palaist un noņemt attālināti, un ļaunprātīgs attēls var kļūt par atbalsta punktu uz maršrutētāja. MikroTik to izsaka tieši — ja jūsu RouterOS ierīce ir kompromitēta, konteineri padara ļaunprātīgas programmatūras instalēšanu triviālu, un trešo pušu attēliem nav drošības garantijas.
Izturieties pret maršrutētāju, kas mitina konteinerus, tieši tikpat droši kā pret vismazāk uzticamo attēlu, ko uz tā palaižat. Izvietojiet tikai attēlus, kuriem uzticaties, turiet ierīci aiz ugunsmūra un pirms šī iespējošanas ražošanā izlasiet mūsu device-mode drošības operāciju rokasgrāmatu.
Konteineru Tīkla Izveide
Konteineriem nepieciešams virtuāls interfeiss, bridge un NAT, lai sasniegtu internetu. Tālāk redzamais paraugs atspoguļo “bridge” tīklošanu Docker. Vispirms izveidojiet veth interfeisu un bridge, kas dala tā vārtejas adresi:
/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=veth1Viens veth var apkalpot daudzus konteinerus, un papildu veth/bridge pāru izveide ļauj izolēt konteineru grupas vienu no otras. Ja jums RouterOS bridging ir jauna, mūsu bridge konfigurācijas pamācība izskaidro pamatā esošo modeli. Pēc tam pievienojiet masquerade noteikumu, lai izejošais konteineru datu plūsmas tiktu tulkota — pilnu ainu skatiet NAT konfigurācijas rokasgrāmatā:
/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24Izvietojiet Savu Pirmo Konteineri
Novirziet registry un pagaidu izpakošanas direktoriju uz savu ārējo disku, pēc tam pievienojiet attēlu. Tālāk redzamais Pi-hole piemērs ir kanoniskais no MikroTik dokumentācijas:
/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=yesKonteinera pievienošana sāk lejupielādi un izpakošanu, bet to nepalaiž. Pārbaudiet progresu ar /container/print un gaidiet, līdz status=stopped, tad palaidiet to:
/container/start piholeVisbeidzot publicējiet pakalpojumu, pārsūtot portu no maršrutētāja uz veth adresi:
/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 tagad atbild uz maršrutētāja LAN IP. DNS filtrēšanas palaišana šādā veidā ir alternatīva RouterOS vietējiem bloķēšanas sarakstiem — ja izvēlaties ceļu bez konteinera, skatiet mūsu RouterOS adlist pamācību.
Konteineru Pārvaldība Visā Flotē
Viens konteiners uz viena maršrutētāja ir vienkārši. Patiesais operatīvais jautājums ISP ir konsekvence: tas pats attēls, tā pati veth un NAT shēma, tas pats krātuves izkārtojums un tie paši start-on-boot un atmiņas ierobežojumi uz katras ierīces. RouterOS sniedz jums primitīvus — start-on-boot=yes pārdzīvo pārstartēšanu, un memory-high vai memory-max ierobežo RAM uz katru konteineri, lai nekontrolēts pakalpojums neizsalst maršrutēšanas plakni:
/container/config/set memory-high=200M/container/set pihole start-on-boot=yesGrūtā daļa ir to izdarīt identiski desmitos vai simtos attālo maršrutētāju un pēc tam pierādīt, ka katrs no tiem pēc pārstartēšanas patiešām atkal ir startējis — īpaši, ja ierīce atrodas aiz CGNAT un jūs nevarat vienkārši sasniegt tās publisko IP.
Padomi
- Turiet katru konteinera sējumu ārējā diskā; nekad iekšējā NAND.
- Izmantojiet atsevišķu veth/bridge pāri, lai izolētu neuzticamus konteinerus no uzticamiem.
- Iestatiet
memory-maxuz visu, kam pilnībā neuzticaties, lai maršrutētājs paliktu atsaucīgs. - Tīrai testa videi pirms ražošanas aizskaršanas palaidiet tos pašus attēlus uz virtualizētas CHR instances, pirms izvietojat tos uz fiziskiem maršrutētājiem.
Speriet Nākamo Soli
Konteineri pārvērš MikroTik maršrutētāju mazā lietojumprogrammu mitinātājā, bet šādu mitinātāju flotei nepieciešama orķestrēšana. MKController centralizēti veido RouterOS konfigurācijas veidnes, piemēro tās katrai ierīcei jūsu inventārā un izseko novirzes, lai jūs varētu redzēt, kurš maršrutētājs ir atšķīries — un caur NATCloud tas sasniedz ierīces aiz CGNAT, lai apstiprinātu, ka konteineris pēc apkopes ir pārstartējies. Tas aizver plaisu starp viena konteinera manuālu konfigurēšanu un to uzticamu darbināšanu visā ISP tīklā.