パブリックプレビューが開始されたAppleシリコン(M1)用のDockerを試してみた

Appleシリコン(M1)を搭載するMac用の Docker Desktop (Preview7) を利用して、Amazon Linux2とPython3のコンテナイメージを試してみました。
2020.12.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSチームのすずきです。

パブリックプレビューが開始された Docker Desktop (Preview7)を Apple M1チップ搭載の Mac (Mac mini 2020)にインストールし試す機会がありましたので紹介します。

ダウンロード

パブリックプレビューとなった Docker Desktop for M1 (Preview7)、公式ブログページのリンクからダウンロード可能です。

  • ダウンロードリンク

インストール

Preview表記のある Docker.app をインストールします。

動作確認

sw_vers

$ sw_vers        
ProductName:	macOS
ProductVersion:	11.1
BuildVersion:	20C69

docker(バージョン)

$ docker --version
Docker version 20.10.1, build 831ebeae96

Amazon Linux2

Amazon Linux2 のコンテナイメージを試してみました。

$ docker run -it amazonlinux bash
bash-4.2# uname -a
Linux 7f1e4517e070 4.19.104-linuxkit #1 SMP PREEMPT Sat Feb 15 00:49:47 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
bash-4.2# cat /etc/system-release
Amazon Linux release 2 (Karoo)

ARMアーキテクチャ(aarch64)の環境が利用できました。

アクティビティモニタ

MacOSのアクティビティモニタのアーキテクチャ表示を確認しました。

Docker Desktop HelperなどはIntel。Rosetta 2を利用した動作でした。

Python3のコンテナイメージで起動したプロセスはApple。ネイティブ動作でした。

性能比較

Python3でループ処理を実施、その所要時間を比較しました。

$ time docker run -it --rm python:3.8 python -c "exec(\"i=0\nwhile i<1000000000: i += 1;\")"

Mac mini 2020 (M1)

docker run -it --rm python:3.8 python -c   0.09s user 0.07s system 0% cpu 44.116 total

MacBookPro 2015 (Corei5)

docker run -it --rm python:3.8 python -c   0.13s user 0.09s system 0% cpu 1:48.57 total

グラフ

  • Python3のループ所要時間の比較

M1 Mac、2015年当時の環境と比較して、単純なループ処理は 約2.5倍 高速でした。

まとめ

2020年11月に発売された Apple M1チップ搭載の Macで Dockerのプレビュー利用が可能になりました。

AWS Graviton2 を搭載したEC2、M6g、T4gインスタンスを採用するシステムの開発環境として活用できる事が期待されます。

開発が順調に進み、2021年第1四半期に予定されている正式版のリリースを心待ちにしたいと思います。