Apple silicon 対応 Docker Desktop¶
Apple silicon に対応した Docker Desktop for Mac が、一般提供開始リリースとして利用可能です。これで、ローカル開発環境としてアプリケーションを開発できるようになります。また、ARM をベースとしたアプリケーション向けの開発パイプラインも拡張できます。
Apple silicon 用 Docker Desktop for Mac は、
Apple silicon 対応 Docker Desktop をダウンロードします。
システム要件¶
Docker Desktop 4.3.0 から、ハードウェア要件から Rosetta 2 のインストールを削除しました。Darwin/AMD64 を使う場合は、 オプションのコマンドラインツールとして Roseta 2 が必要です。以下にある既知の問題のセクションをご覧ください。一方で、最高の体験を得るには、Rosetta 2 のインストールを推奨します。Rosetta 2 を手動でインストールするには、以下のコマンドを実行します。
$ softwareupdate --install-rosetta
既知の問題¶
Rosetta 2 をインストールしなければ、コマンドラインツールのいくつかが動作しません。
docker-compose
の古いバージョン 1.x 。代わりに Compose V2 のインストールを推奨します。docker compose
を入力するか、 設定の General タブ にある Use Docker Compose V2 オプションを有効にします。docker scan
コマンドと、基礎を成す snyk
バイナリ。docker-credential-ecr-login
認証情報ヘルパー
イメージのいくつかは ARM64 アーキテクチャをサポートしていません。 Intel イメージでエミュレーションを使うには、実行時(または構築時)に
--platform linux/amd64
を追加できます。一方、エミュレーション下の Applie silicon マシン上で、 Intel ベースのコンテナを実行しようとすると、コンテナの実行時に、時々 qemu が落ちてクラッシュを引き起こします。さらに、 qemu エミュレーション下では、ファイルシステム変更通知 API (
inotify
)が動作しません。エミュレーション下でコンテナを正しく動作させようとしても、本来の状況と比べて遅くなり、より多くのメモリを使います。まとめると、Arm ベースのマシン上で Intel ベースのコンテナの実行とは、「ベストエフォート」のみと見なすべきです。 Apple silicon マシン上では、可能な限り arm64 コンテナの実行を推奨します。また、コンテナの作者に対しては、arm64 やマルチアーキテクチャに対応したコンテナのバージョンの作成を推奨しています。時間が経てば マルチアーキテクチャをサポートする イメージの再構築が増えていき、この問題は減っていくと考えています。
コンテナ内からインターネットに対する
ping
が期待通りに動作しません。ネットワークの確認には、curl
やwget
の利用を推奨します。 docker/for-mac#5322 をご覧ください。
TCP 通信が half-closed の場合、時々データ欠損が発生する場合があります。
Docker Desktop RC 3 までの修正¶
Docker Desktop は今後
/dev/null
のパーミッションを確保するようになり、--privileged
コンテナ内では他のデバイスが正しく0666
(rw-rw-rw-
) に設定されます。 docker/for-mac#5527 の修正です。Docker Desktop は今後アイドル CPU 消費を減らします。
Docker Desktop RC 2 までの修正¶
安定性を向上するため Linux kernel 5.10.25 にアップデートします。
Docker Desktop RC 1 までの修正¶
コンテナ間の HTTP と HTTPS 通信が、今後正しく経路付けされます。 docker/for-mac#5476 の修正です。
Docker Desktop preview 3.1.0 までの修正¶
以降のバージョンでは、ビルドを自動的に更新できるようにします。
HTTP プロキシのサポートが機能します。これには TLS SNI を経由した
no_proxy
ルールをベースとするドメイン名のサポートも含みます。 docker/for-mac#2732 の修正です。
Apple Silicon preview 7 までの修正¶
Kubernetes が動作します(しかしながら、証明書を再作成するため、一度トラブルシュートのメニューからクラスタのリセットが必要になるでしょう)。
osxfs ファイル共有が動作します。
host.docker.internal
とvm.docker.internal
DNS エントリが名前解決できます。固定された IP アドレスを削除しました。今後 Docker Desktop は macOS によって割り当てられた IP を動的に発見します。更新版に含まれる変更によって、ディスクのパフォーマンスが改善されるでしょう。
Docker メニューの Restart オプションが動作します。
参考
- Docker Desktop for Apple silicon