x86 containers
Some lab software only ships as an x86 (amd64) image. Docker on Apple Silicon runs those too, translated through the binfmt_misc interpreter you checked earlier, so you don't need a VM for them. Ask for the platform explicitly with --platform linux/amd64 (or platform: linux/amd64 in a compose file) so it's obvious which containers are translated.
How much slower is it? A simple shell loop counting to three million took 2.77 seconds natively and 3.84 seconds as an amd64 container under Rosetta: roughly 40% slower, which for a router's control plane or a test tool is rarely noticeable.
Translation has limits, though. It covers ordinary programs, not a whole operating system. A network OS that expects its own kernel, init system and hardware won't run as a translated container. When we tried VyOS's container image under emulation, configuration commits failed. For those you need the next approach: a whole x86 virtual machine.
mac$ docker run --rm alpine sh -c 'time sh -c "i=0; while [ \$i -lt 3000000 ]; do i=\$((i+1)); done"'
real 0m 2.77s
user 0m 2.77s
sys 0m 0.00s
mac$ docker run --rm --platform linux/amd64 alpine sh -c 'time sh -c "i=0; while [ \$i -lt 3000000 ]; do i=\$((i+1)); done"'
real 0m 3.84s
user 0m 3.84s
sys 0m 0.00s- Line 2: Native arm64: 2.77 s.
- Line 7: amd64 under Rosetta: 3.84 s, about 40% slower.