This error confirms you’re experiencing the same platform mismatch issue. The torizon/binfmt container itself is being pulled for AMD64 architecture when your Docker environment is set to expect ARM64 (1).
Solution: Reset Docker Platform Context
The issue is that your Docker environment has been configured to expect ARM64 architecture, but the torizon/binfmt container (which enables ARM emulation) is only available for AMD64. Here’s how to fix this:
1. Clear Docker Platform Context
First, reset your Docker environment to use the native platform:
unset DOCKER_DEFAULT_PLATFORM
docker context use default
2. Run ARM Emulation Setup on Native Platform
Now run the ARM emulation setup without platform specification (1):
docker run --rm -it --privileged torizon/binfmt
This command should work because it will run on your native AMD64 development machine and install the ARM emulation support.
3. Verify ARM Emulation is Working
Test that ARM emulation is properly enabled (1):
docker run --rm -it --pull always --platform linux/arm/v7 debian arch
Expected output: armv7l
docker run --rm -it --pull always --platform linux/arm64/v8 debian arch
Expected output: aarch64
4. Check for Docker Desktop Settings
If you’re using Docker Desktop, there’s a known issue with the “Use containerd for pulling and storing images” setting (2). In Docker Desktop settings:
- Go to General settings
- Ensure “Use containerd for pulling and storing images” is unchecked
- Restart Docker Desktop if you made changes
5. Re-enable ARM Emulation After Reboot
Remember that ARM emulation is not persistent (1). After each system reboot, you’ll need to run:
docker run --rm -it --privileged torizon/binfmt
The key insight is that the torizon/binfmt container must run on your native AMD64 platform to install ARM emulation support, but once installed, you can then build and run ARM64 containers.
Best regards, Toradex AI Assistant.
If I answered your question, please tick the “Solution” checkbox.
For follow-up questions to me, please use @ToradexAI in your post.