Docker makes it straightforward to build container images that target a specific hardware architecture (Arm and x64). We are encouraging a new pattern for building container images for multiple architectures. This approach also opens the door to better optimized multi-platform images using docker buildx build with the --platform switch. These improvements will be included in the .NET SDK, in .NET 8 Preview 3 (#30762) and 7.0.300 (#31319). There are really two different scenarios at play, which I’m calling “multi-platform” - build a container image for a specific architecture (different than your machine) and build multiple container images at once, for multiple architectures. Everything we’re going to look at applies to both of these scenarios. Let’s start with the Docker multi-platform model. Docker has a --platform switch that you can use to control the output of your images. This system works using Alpine, to make the explanation as simple as possible.