RouterOS 7 can run actual Linux containers directly on supported hardware — useful for small utilities like a DNS ad-blocker, a metrics exporter, or a lightweight script runner, without a separate box next to the router. It's a real feature, but it's disabled by default and has a few setup steps that aren't obvious the first time.
Confirm your device supports it
Container needs ARM, ARM64, or x86 architecture with enough flash and RAM — most entry-level MIPSBE routers can't run it. Check /system resource print for the architecture-name field before going further.
Enable the container package and a veth interface
/system device-mode update container=yesThis usually requires physical access (pressing the reset button once when prompted) as a safety measure, then a reboot.
/interface veth add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1
/interface bridge add name=docker0
/ip address add address=172.17.0.1/24 interface=docker0
/interface bridge port add bridge=docker0 interface=veth1Point RouterOS at where to store container files
Containers need a dedicated partition or USB storage:
/container config set registry-url=https://registry-1.docker.io tmpdir=usb1/pullPull and add a container image
/container add remote-image=alpine:latest interface=veth1 root-dir=usb1/containers/alpine1 start-on-boot=yesStart it and check that it's running
/container start [find tag=alpine:latest]
/container printStatus should show running; use /container shell to get an interactive session inside it if you need to debug.
Why do it this way
Running a container directly on the router instead of a separate device removes a physical box, a power supply, and a network hop from your setup — but it also competes for the same CPU and RAM the router needs for routing itself, so it's a good fit for lightweight utilities and a bad fit for anything CPU-heavy. Keeping storage on a dedicated partition or USB drive (step 3) matters specifically because container images can be large enough to fill onboard flash and leave no room for RouterOS itself to write logs or backups.
How MoniTik helps
If you're running a container to monitor the router itself — a metrics exporter, a custom health-check script — that's exactly the kind of visibility MoniTik already gives you out of the box, without spending the router's own CPU and RAM running the monitoring tool alongside the thing it's monitoring.