Mikrotik RouterOS v7.1rc3 adds Docker (TM) compatible container support -> OLSRd container!

Hi,

Mikrotik hat kürzlich Docker support in ihre aktuellste RouterOS (development-)version hinzugefügt! [1]
Da liegt es doch Nahe, einen container mit OLSR dafür zu bauen…

Soweit mir bekannt ist, sind die RB960PGS(-PB) [2] die einzigen beiden Mikrotik Router, die Gigabit fähig sind und PoE Out auf mehreren Ports bieten. [3]
Nachdem der RB960PGS (bzw. RB960PGS-PB) dem Ubiquiti EdgeRouter-X-SFP (bzw. EdgePoint-R6) ähnlich ist, versuche ich daher einen docker container mit OLSR dafür zu bauen.
Dieser Router arbeitet auf MIPS (big endian) Architektur und braucht somit einen passenden container für mipsbe.

OLSRd für mipsbe crosscompilen ist offensichtlich (relativ einfach) machbar und rennt bereits auf so manchen MIPSBE-EdgeRoutern in unserem Netz.
Aber einen MIPSBE Host mit Docker zu realisieren scheint derzeit nicht so einfach zu sein, bzw. sind Informationen dazu spärlich um container für MIPSBE zu bauen.
Ich konnte zwar auf einem ER-X-SFP (MIPS little endian) mit OpenWRT 21.02 Docker installieren und habe darauf einen container mit OLSRd gebaut aber das rennt eben nur auf MIPSEL/MIPSLE.
Habe daher versucht den gleichen container, nur eben mit MIPSBE binaries/libs, zu bauen aber dieser container startet leider nicht im RouterOS.
Leider gibt es weder Fehlermeldung noch irgendeine Log-Ausgabe, ich habe meine Erfahrungen auch im Mikrotik Forum [4] beschrieben.

Vielleicht interessiert das Thema hier noch jemanden bzw. hat jemand Erfahrung mit dem Bau von docker containern für MIPS(be) und hat Ideen wie man das debuggen oder sogar zum Laufen bringen könnte.
Würde mich sehr freuen wenn wir es schaffen OLSR in einem docker container auf RouterOS zum Laufen zu bringen!

LG Christoph

[1] v7.1rc3 [development] is released! - MikroTik bzw. v7.1rc3 adds Docker (TM) compatible container support - MikroTik
[2] MikroTik Routers and Wireless - Products: hEX PoE bzw. MikroTik Routers and Wireless - Products: PowerBox Pro
[3] MikroTik Routers and Wireless - Products}#!
[4] v7.1rc3 adds Docker (TM) compatible container support - MikroTik

1 „Gefällt mir“

Hi,

mittlerweile habe ich es (mit Unterstützung[1] aus dem Mikrotik Forum) geschafft einen Docker Container mit OLSRd für den RB960PGS (mipsbe) zu bauen.

Vorerst muss, wie in der Dokumentation beschrieben[2], auf dem Mikrotik Gerät mindestens RouterOS Version 7.1rc3 laufen und das „container“ package installiert sein.
Dann braucht es eine bridge und ein virtuelles ethernet interface:

/interface/veth/add name=veth1 address=172.17.0.2/16 gateway=172.17.0.1
/interface/bridge/add name=docker
/ip/address/add address=172.17.0.1/16 interface=docker
/interface/bridge/port add bridge=docker interface=veth1

Grundsätzlich habe ich dafür ein OpenWRT rootfs für mipsbe [3] genommen, OLSRd darauf installiert/konfiguriert und die olsrd-binary samt config davon für einen eigenen Container kopiert.
(In der /etc/olsrd/olsrd.conf muss auf jeden fall das Interface eth0 definiert werden.)

Das Dockerfile sieht wie folgt aus:

FROM scratch
ADD ./ /
EXPOSE 698
USER root
CMD ["/bin/sh","/init.sh"]

Das init.sh Script zum Starten sieht so aus:

#!/bin/sh
# Docker automatically assignes an IP address on eth0 but OLSRd requires the
# user-wanted IP address to be used as first primary main IP address.
# So remove the Docker assigned IP and set the user-wanted IP/mask.
# But because Docker will not start the container without its IP, we have to
# add it back again later on after setting the user-wanted IP/mask.
DOCKER_ASSIGNED_IP=$(*/bin/busybox ip -4 addr show eth0 | /bin/busybox awk '/inet/*{print $2}')
/bin/busybox ip addr del $DOCKER_ASSIGNED_IP dev eth0
/bin/busybox ip addr add $OLSRD_IP dev eth0
/bin/busybox ip addr add $DOCKER_ASSIGNED_IP dev eth0
/usr/sbin/olsrd

Bauen kann man so den Container aus dem OpenWRT rootfs, auf jedem beliebigen System wo Docker installiert ist (der Architektur-Tag wird von RouterOS offensichtlich ignoriert):
docker build -t olsrd . && docker save olsrd > olsrd.tar

Das tar-file kann man dann auf den Mikrotik Router kopieren und mit folgenden Befehlen starten:

/container/envs/add list=olsrd name=OLSRD_IP value=193.238.158.13/32
/container/add file=olsrd.tar interface=veth1 logging=yes envlist=olsrd
/container/start number=0
/container/print
0 file=olsrd.tar name="6147d0b5-5c9e-43b1-be42-76b735ec2939" tag="olsrd:latest" os="linux" arch="amd64" interface=veth1 envlist="olsrd" mounts="" dns="" logging=yes status=running

Auf Basis dieser Informationen lassen sich somit OLSRd-Container für jedes beliebige Mikrotik Gerät bauen…

LG Christoph

[1] v7.1rc3 adds Docker (TM) compatible container support - MikroTik
[2] Container - RouterOS - MikroTik Documentation
[3] Docker Hub

2 „Gefällt mir“

Hi,

nachdem ich einen OLSRd Container für den RB960PGS auf MIPSBE gebaut habe, konnte ich es nicht lassen und habe auch einen Container für die lhg_60g auf ARM gebaut.
Möglich wäre natürlich auch ein Container auf ARM64 (z.B. wireless_wire_nray) aber dazu fehlt mir momentan ein Gerät zum Testen.
Mit den MIPSBE und ARM Architekturen sollten bereits die meisten Mikrotik Geräte abgedeckt sein, laut Mikrotik Download Seite [1].

MIPSBE:
CRS1xx, CRS2xx, CRS312-4C+8XG, CRS326-24S+2Q+, CRS354, Cube Lite60, DISC, FiberBox, hAP, hAP ac, hAP ac lite, LDF, LHG, LHG Lite60, ltAP mini, mANTBox, mANTBox 2, mAP, mAP lite, NetBox, NetMetal, PowerBox, PWR-Line, QRT, RB9xx, SXTsq, cAP, hEX Lite, RB4xx, wAP, BaseBox, DynaDish, RB2011, SXT, OmniTik, Groove, Metal, Sextant, RB7xx, hEX PoE

ARM64:
nRAY, CCR2004, LHGGR

ARM:
arm64, cAP ac, CRS305-1G-4S+, CRS309-1G-8S+, CRS317-1G-16S+, CRS318, CRS326-24G-2S+, CRS328-24P-4S+, CRS328-4C-20S-4S+, Cube 60G ac, DISC AC, hAP ac², hAP ac³, LDF ac, LHG ac, mANTBox 52, NetMetal ac², RB4011, SXTsq (ac series), wAP 60G series, Chateau, RB3011, RB1100AHx4, Audience, RB450Gx4, wAP ac

Für Interessierte hier die beiden Container-Images zum ausprobieren: (Achtung: die tar-Dateinamen dürfen keine Sonderzeichen haben, wenn sie auf das Mikrotik Gerät geladen werden)
dockerolsrdmipsbe.tar (1,7 MB)
dockerolsrdarm.tar (1,6 MB)

LG Christoph

[1] MikroTik Routers and Wireless - Software

Hi,

da ich schon dabei bin, habe ich auch gleich Container für OLSRd V2 (auf Basis des OpenWRT Pakets „oonf-olsrd2 - v0.15.1 - Build Olsrd V2 Routing Agent“) gebaut.

Hier die Container-Images: (die env Variable für die IP ist hierbei OLSRD2_IP )
dockerolsrd2mipsbe.tar (1,8 MB)
dockerolsrd2arm.tar (1,7 MB)

LG Christoph

Hi,

hier nun auch die Container für ARM64 Architektur:
dockerolsrdarm64.tar (1,8 MB)
dockerolsrd2arm64.tar (2,0 MB)

Danke an Julian für die Leihgabe der wireless_wire_nray damit ich die Container bauen konnte!
Falls jemand ein Gerät der folgenden Architekturen hat, kann ich gerne auch dafür Container bauen.

SMIPS: (There is no SMIPS device with enough RAM to allow the use of Docker containers…)
hAP mini, hAP lite

TILE:
CCR1xxx

PPC:
RB3xx, RB600, RB8xx, RB1100AHx2, RB1100AH, RB1100, RB1200

MMIPS:
hEX (RB750Gr3), hEX S, RBMxx

LG Christoph

Hi,

bei Reboot geht leider der container-store verloren, daher muss nach Reboot der Container neu eingespielt werden. Damit das nicht manuell gemacht werden muss, habe ich ein Script gebaut, womit sicher gestellt wird, dass der Container nach Reboot wieder wie gewohnt läuft:

für den OLSRd Container:

/system script
add dont-require-permissions=yes name=run_olsrd owner=admin policy=read,write source="# script to automatically run OLSRd container\r\
    \n:global OLSRdContainerInterface;\r\
    \n#\r\
    \n# SET THE INTERFACE\r\
    \n:set \$OLSRdContainerInterface \"veth1\";\r\
    \n#\r\
    \n:global myarch\r\
    \n:global OLSRdContainerName;\r\
    \n:global OLSRdContainerFile;\r\
    \n:set \$myarch [/system/resource/get architecture-name]\r\
    \n:set \$OLSRdContainerName \"olsrd\";\r\
    \n:set \$OLSRdContainerFile [/file/find name~\"*olsrd\$myarch.tar\"];\r\
    \n:if ([:len [/container/find hostname=\"\$OLSRdContainerName\"]] > 0) do={\r\
    \n  :log debug \"OLSRd container is configured.\"\r\
    \n  :if ([/container/get number=[/container/find hostname=\"\$OLSRdContainerName\"] status]=\"stopped\") do={\r\
    \n    :if ([:len [/file find name=[/container/get number=[/container/find hostname=\"\$OLSRdContainerName\"] name]]] > 0) do={\r\
    \n    :log debug \"OLSRd container store exists, starting container.\"\r\
    \n      /container/start number=[/container/find hostname=\"\$OLSRdContainerName\"]\r\
    \n    } else={\r\
    \n      :log error \"OLSRd container store does NOT exist, re-adding container.\"\r\
    \n      /container/remove numbers=[/container/find hostname=\"\$OLSRdContainerName\"]\r\
    \n      /container/add file=\$OLSRdContainerFile interface=\$OLSRdContainerInterface logging=yes hostname=\$OLSRdContainerName envlist=\$OLSRdContainerName\r\
    \n    }\r\
    \n  }\r\
    \n} else={\r\
    \n  :log debug \"OLSRd container is NOT configured.\"\r\
    \n  :if ([:len [/container/envs/find list=\$OLSRdContainerName name=OLSRD_IP]] > 0) do={\r\
    \n    :log debug \"Environment variable OLSRD_IP is set.\"\r\
    \n  } else={\r\
    \n  :log error \"Container environment variable OLSRD_IP missing!\"\r\
    \n  :log error \"Please add:\"\r\
    \n  :log error \"/container/envs/add list=\$OLSRdContainerName name=OLSRD_IP value=\\\"193.238.158.13/32\\\"\"\r\
    \n  :log info \"Optionally add:\"\r\
    \n  :log info \"/container/envs/add list=\$OLSRdContainerName name=OLSRD_LQMULT value=\\\"192.168.1.234:0.1 192.168.1.223:0.2\\\"\"\r\
    \n  :log info \"/container/envs/add list=\$OLSRdContainerName name=OLSRD_HNA4 value=\\\"193.238.156.23-255.255.255.255\\\"\"\r\
    \n  :quit\r\
    \n  }\r\
    \n  :log debug \"Adding OLSRd container.\"\r\
    \n  /container/add file=\$OLSRdContainerFile interface=\$OLSRdContainerInterface logging=yes hostname=\$OLSRdContainerName envlist=\$OLSRdContainerName\r\
    \n}"

für den OLSRd V2 Container:

/system script
add dont-require-permissions=yes name=run_olsrd2 owner=admin policy=read,write source="# script to automatically run OLSRd V2 container\r\
    \n:global OLSRd2ContainerInterface;\r\
    \n#\r\
    \n# SET THE INTERFACE\r\
    \n:set \$OLSRd2ContainerInterface \"veth1\";\r\
    \n#\r\
    \n:global myarch\r\
    \n:global OLSRd2ContainerName;\r\
    \n:global OLSRd2ContainerFile;\r\
    \n:set \$myarch [/system/resource/get architecture-name]\r\
    \n:set \$OLSRd2ContainerName \"olsrd2\";\r\
    \n:set \$OLSRd2ContainerFile [/file/find name~\"*olsrd2\$myarch.tar\"];\r\
    \n:if ([:len [/container/find hostname=\"\$OLSRd2ContainerName\"]] > 0) do={\r\
    \n  :log debug \"OLSRd V2 container is configured.\"\r\
    \n  :if ([/container/get number=[/container/find hostname=\"\$OLSRd2ContainerName\"] status]=\"stopped\") do={\r\
    \n    :if ([:len [/file find name=[/container/get number=[/container/find hostname=\"\$OLSRd2ContainerName\"] name]]] > 0) do={\r\
    \n    :log debug \"OLSRd V2 container store exists, starting container.\"\r\
    \n      /container/start number=[/container/find hostname=\"\$OLSRd2ContainerName\"]\r\
    \n    } else={\r\
    \n      :log error \"OLSRd V2 container store does NOT exist, re-adding container.\"\r\
    \n      /container/remove numbers=[/container/find hostname=\"\$OLSRd2ContainerName\"]\r\
    \n      /container/add file=\$OLSRd2ContainerFile interface=\$OLSRd2ContainerInterface logging=yes hostname=\$OLSRd2ContainerName envlist=\$OLSRd2ContainerName\r\
    \n    }\r\
    \n  }\r\
    \n} else={\r\
    \n  :log debug \"OLSRd V2 container is NOT configured.\"\r\
    \n  :if ([:len [/container/envs/find list=\$OLSRd2ContainerName name=OLSRD2_IP]] > 0) do={\r\
    \n    :log debug \"Environment variable OLSRD2_IP is set.\"\r\
    \n  } else={\r\
    \n  :log error \"Container environment variable OLSRD2_IP missing!\"\r\
    \n  :log error \"Please add:\"\r\
    \n  :log error \"/container/envs/add list=\$OLSRd2ContainerName name=OLSRD2_IP value=\\\"2a02:61:d64::1/128\\\"\"\r\
    \n  :quit\r\
    \n  }\r\
    \n  :log debug \"Adding OLSRd V2 container.\"\r\
    \n  /container/add file=\$OLSRd2ContainerFile interface=\$OLSRd2ContainerInterface logging=yes hostname=\$OLSRd2ContainerName envlist=\$OLSRd2ContainerName\r\
    \n}"

Um laufend (und auch nach Reboot) zu prüfen, dass alles passt, werden die beiden Scripte per scheduler jede Minute ausgeführt:

/system/scheduler/add interval=1m name=schedule1 on-event="/system/script/run run_olsrd; /system/script/run run_olsrd2" policy=read,write

LG Christoph

1 „Gefällt mir“

Hi,

weil ich gefragt worden bin, wie ich die Container gebaut habe, hier eine kurze „Anleitung“:

  • auf einem beliebigem System Docker installieren (oder ein System nutzen wo Docker bereits installiert ist)
  • vom Docker Hub das OpenWRT rootfs ziehen:
    • z.B. für mipsbe: docker pull openwrtorg/rootfs:mips_24kc-21.02.0
    • z.B. für arm: docker pull openwrtorg/rootfs:arm_cortex-a15_neon-vfpv4-21.02.0
    • z.B. für arm64: docker pull openwrtorg/rootfs:armvirt-64-openwrt-21.02
  • das Docker image
    • in einem eigenen Ordner: mkdir openwrtorg; cd openwrtorg
    • speichern: docker save openwrtorg/rootfs > openwrtorg.tar
    • entpacken: tar xf openwrtorg.tar
  • dann gibt es darin einen Unterordner mit langem kryptischen Namen worin ein layer.tar liegt, welches das ganze OpenWRT rootfs beinhaltet, dieses entpacken:
    • tar xf layer.tar
  • das rootfs nach Belieben modifizieren
  • ein Docker image aus dem rootfs bauen: (den Punkt am Ende für das aktuelle Verzeichnis nicht vergessen)
    • docker build -t olsrdmipsbe .
  • das eben gebaute image speichern:
    • docker save olsrdmipsbe > dockerolsrdmipsbe.tar
  • die tar Datei auf das Mikrotik Gerät laden und wie bereits beschrieben starten.

LG Christoph

1 „Gefällt mir“

Hi,

die Infoplugins im OLSRd Container können nun mittels Umgebungsvariablen, wie in folgendem Beispiel ersichtlich, ebenfalls konfiguriert werden.
Variable OLSRD_IP muss angegeben werden, die anderen Variablen sind optional.
Werden bei den Infoplugins keine Umgebungsvariablen gesetzt, verwendet OLSRd die Standardeinstellungen, Standardports und nur via 127.0.0.1 erreichbar.

/container/envs/add list="olsrd" name="OLSRD_IP" value="193.238.158.13/32" 
/container/envs/add list="olsrd" name="OLSRD_HNA4" value="193.238.156.23/255.255.255.255 193.238.156.183/255.255.255.255" 
/container/envs/add list="olsrd" name="OLSRD_LQMULT" value="193.238.156.229:0.1 193.238.156.212:0.2" 
/container/envs/add list="olsrd" name="OLSRD_HTTPINFO_PORT" value="1978" 
/container/envs/add list="olsrd" name="OLSRD_HTTPINFO_ALLOW_NET" value="0.0.0.0 0.0.0.0" 
/container/envs/add list="olsrd" name="OLSRD_TXTINFO_PORT" value="2006" 
/container/envs/add list="olsrd" name="OLSRD_TXTINFO_ACCEPT_IP" value="0.0.0.0" 
/container/envs/add list="olsrd" name="OLSRD_JSONINFO_PORT" value="9090" 
/container/envs/add list="olsrd" name="OLSRD_JSONINFO_ACCEPT_IP" value="0.0.0.0" 

dockerolsrdmipsbe.tar (1,7 MB)
dockerolsrdarm.tar (1,6 MB)
dockerolsrdarm64.tar (1,8 MB)

LG Christoph

Hi,

damit das Mikrotik Gerät auch über die OLSRd IP erreichbar gemacht werden kann, habe ich in alle Container eine Tunnel-Funktionalität mittels socat eingebaut die mit der Umgebungsvariable SOCAT_TUNNELS wie in folgendem Beispiel konfiguriert werden kann:

/container/envs/add list=olsrd name=SOCAT_TUNNELS value="22:172.17.0.1:22 80:172.17.0.1:80 8291:172.17.0.1:8291"

dockerolsrdarm.tar (1,8 MB)
dockerolsrdarm64.tar (2,0 MB)
dockerolsrdmipsbe.tar (1,8 MB)
dockerolsrd2arm.tar (1,5 MB)
dockerolsrd2arm64.tar (1,8 MB)
dockerolsrd2mipsbe.tar (1,5 MB)

LG Christoph

Hi,

Tolle arbeit - das schaut soweit schon sehr gut aus :).
Aber, auf ARM(v7) läuft das zeug nicht… auf MIPSBE klappts problemlos…
Leider kommt es zu keiner Fehlermeldung, der Container kann einfach nicht ordnungsgemäß gestartet werden, sehe aber auch im Log garkeine Fehlermeldung! wenn ich den Container starte, sehe ich kurz status=running aber dann gleich wieder status=stopped. Mir ist auch aufgefallen, dass scheinbar im Docker Configfile beim OLSR Broadcast Port TCP anstelle von UDP eingetragen wurde, sollte aber glaube ich nicht das Problem darstellen. Sehe sonst keinen unterschied.

Wär toll wenn du auch ein Package für x86_64 erstellen könntest?

lg
Bernhard

Hi,

wenn du die richtige Architektur für das Gerät eingespielt hast, versuch das tar-file vom Gerät zu entfernen und nochmal rauf zu laden. Mir ist auch aufgefallen, dass es manchmal dieses Verhalten hat und da hat nur geholfen den Container zu entfernen und die Datei nochmal hoch zu laden um den Container (via config) neu zu erstellen.

Kann ich gerne machen, kommt in Kürze :slight_smile:

Noch ein Hinweis bzgl. RouterOS-Upgrades, das container Paket wurde wieder entfernt, also gibt es das (derzeit) nur in 7.1rc4:

What’s new in 7.1rc5 (2021-Oct-25 20:15):
!) container - package is getting updated and will be made available in future, if interested in container feature please use 7.1rc4;

LG Christoph

Bezüglich dem ARM tar-file hab ich bereits alles versucht - jedoch ohne Erfolg. Wenn ich den Container starte - kann ich, sofern ich schnell bin, den Status running erspähen… aber nur kurz…
Im Logging habe ich „container und debug“ hinzugefügt, kann jedoch beim starten des olsrd-containers keine log Nachrichten sehen.

Getestet wurde dies auf folgendem Gerät:
netPower 16P → CRS318-16P-2S+OUT
CPU: ARMv7

Stimmt, im Changelog hab ich den von dir angesprochenen Punkt bereits gefunden gehabt, ich arbeite aktuell mit Version 71.rc4. Dafür gibt es aktuell den Container als Package :). Die gleichen Tests habe ich auch mit Version rc3 durchgeführt - kein Erfolg.

Hast du sonst noch ideen wie ich tiefer in die Container Plattform troubleshooten könnte?

Hi,

ich habe die Container nochmal überprüft, bei mir funktioniert es.
Evtl. ein Fehler beim Upload von mir oder Download von dir.
Hier nochmal alle Dateien mit den md5 bzw. sha1 Prüfsummen:

dockerolsrd2arm.tar (1,5 MB)
dockerolsrd2arm64.tar (1,8 MB)
dockerolsrd2mipsbe.tar (1,5 MB)
dockerolsrdarm.tar (1,8 MB)
dockerolsrdarm64.tar (2,0 MB)
dockerolsrdmipsbe.tar (1,8 MB)

md5:
f907df4af1cb40205226da001e761c9f dockerolsrd2arm.tar
e5cc885809e713396464bbdf1788f409 dockerolsrd2arm64.tar
5a85d50b65db282687ae8ace81bbdd21 dockerolsrd2mipsbe.tar
6532a48d31b47aecb8e090d60618c9cf dockerolsrdarm.tar
ea7b952989ff59e09e2a41e1f5ff4744 dockerolsrdarm64.tar
a37772c6e04dcccda75d168638b765a3 dockerolsrdmipsbe.tar

sha1:
effa2a6aad1a9b9073128a31899136e2c8e97484 dockerolsrd2arm.tar
b3ea0a3546eebfae826afe199ce6980c9d0032c8 dockerolsrd2arm64.tar
bc29b173d6a66945e05062ade8369a8f0afe33c2 dockerolsrd2mipsbe.tar
bfa81c15ef5e949793238020362d706489197143 dockerolsrdarm.tar
06ab0c2b827baf3ac295cf79f76742cc01e75b12 dockerolsrdarm64.tar
fc3d6904ba30ab918213275bdd6f083ddb90fab4 dockerolsrdmipsbe.tar

LG Christoph

Es gibt noch die Möglichkeit, ein support-file „supout.rif“ zu generieren.
Dieses lässt sich mit dem Tool go-mikrotik-rif auslesen.
Es hat mir bisher aber kaum geholfen zu verstehen weswegen ein Container nicht entpackt bzw nicht gestartet werden konnte.

Hi,

hier nun auch Container für x86_64 mit den jeweiligen Prüfsummen.

dockerolsrd2x86-64.tar (1,7 MB)
dockerolsrdx86-64.tar (1,9 MB)

md5
6503ca94b8855c7f6dbbee4cbaefa7d4 dockerolsrd2x86-64.tar
bda178a727ee3b006339a853872dbe67 dockerolsrdx86-64.tar
sha1
c5f7bbabfb932be29ed5ed3a95858f457e36abd8 dockerolsrd2x86-64.tar
ea9c321d4f5076ae89cb8ad7d3453c615afda2eb dockerolsrdx86-64.tar

LG Christoph

Hi, der x86-6 container läuft - da haperts wohl noch bei den ESXi einstellungen… muss ich erst draufkommen was es da hat… ich musste im Bridge Setup zudem die IP-Firewall einschalten damit ich die routen bekommen hatte… hast du sonst noch etwas eingestellt/konfiguriert?

lg

Ich wurde darauf aufmerksam gemacht, dass das socat binary das executable flag nicht hatte und deswegen portforwards nicht funktionierten.
Hier die ausgebesserten images:
dockerolsrdarm.tar (1,8 MB)
dockerolsrdarm64.tar (2,0 MB)
dockerolsrdmipsbe.tar (1,8 MB)
dockerolsrdx86-64.tar (1,9 MB)
dockerolsrd2arm.tar (1,5 MB)
dockerolsrd2arm64.tar (1,8 MB)
dockerolsrd2mipsbe.tar (1,5 MB)
dockerolsrd2x86-64.tar (1,7 MB)
md5sum:
5cdd8c5d186ef762603fc70930c69c41 dockerolsrd2arm64.tar
f7086b65ac73475785326b079822e5a7 dockerolsrd2arm.tar
756496b70de03bf99450e435db993096 dockerolsrd2mipsbe.tar
ab8b6a3564ce180ff959c55cb7e23d21 dockerolsrd2x86-64.tar
bbd2a6ab31175de5b79ac1282c9f1488 dockerolsrdarm64.tar
9979ffe5ad2955e2970d0f519a3729ad dockerolsrdarm.tar
ff9ed330a204364fa212b44ea6495c66 dockerolsrdmipsbe.tar
dc24ea925eaaf53f879c7263ec9e93a8 dockerolsrdx86-64.tar
sha1sum:
1b3991a68df572244c5004dea4ec4cfb4d059b23 dockerolsrd2arm64.tar
e7bbd0aa177150807a1e516ad4d29a3aeada3cf3 dockerolsrd2arm.tar
f74b08aab6411318e67817ba6e3c162d2440d6e4 dockerolsrd2mipsbe.tar
dd141533155714fbb10640f73b75c7163ceee67e dockerolsrd2x86-64.tar
ec688d023d65fb3d931cac6a9d1c13722e86db4a dockerolsrdarm64.tar
02c1f2ef789553fde5c6580fd1ef646cc03c931b dockerolsrdarm.tar
5373c0ceedcf800c9ad2d0e66ec13ecd161b8eda dockerolsrdmipsbe.tar
d49c806096d7721f512455787be4ad00e1d244cc dockerolsrdx86-64.tar

2 „Gefällt mir“

Es gibt nun wieder ein neues Release mit Container support:

What’s new in 7.4beta4 (2022-Jun-15 14:04):

*) container - added support for running Docker ™ containers on ARM, ARM64 and x86;

https://forum.mikrotik.com/viewtopic.php?p=940233&sid=b05c4d87a7c87c141afd0a38eeb0f5cb#p940123

Korrekt, weiterhin auch in der 7.4beta5.
Die ENVS haben sich nun etwas geändert und in der Winbox gibt es nun auch ein eigenes Konfiguriationstab :).

Am RB5009 läufts olsr! nur SOCAT funktioniert nicht… im Log vom Container steht „permission denied“, scheint also im Bootup vom Container ein Berechtigungsproblem zu geben…?

Log: Running tunnel from listen-port 8291 to destination 172.17.0.1:8291 … /init.sh: line 146: /usr/bin/socat: Permission denied

siehe meinen vorherigen Beitrag in dem thread hier, ich wurde bereits darauf aufmerksam gemacht und habe alle Container mit der korrigierten Berechtigung neu gebaut.
Versuch doch einfach die zuletzt gebauten images :wink: