MacでDockerを実行する場合に、Docker Desktop for Macを使用していればそのままでもアーキテクチャーがlinux/x86_64のコンテナーを実行することができます。手元のMacbook Pro M1では、次のようになっています。
$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
default docker
default default running 20.10.23 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
desktop-linux * docker
desktop-linux desktop-linux running 20.10.23 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
この場合には、QEMUを使用したエミュレーションで実行しています。
ここで、最近のDocker Desktop for Mac(手元にある現在のバージョンは 4.17.0)では設定画面の”Features in development”のBeta版の機能として”Use Rosetta for x86/amd64 emulation on Apple Silicon“のチェックボックスが表示されるようになっています。
この機能を使用するためには、”General”画面で”Use Virtualization framework”にチェックが入っている必要があります。
Apple SiliconとしてM1/M2を使う場合には、QEMUのエミュレーションよりもRosetta2を使用する方がより効率良くなることが期待できます。