最新のDocker Desktopのエンタープライズグレードのパフォーマンス最適化は何ですか?

主なハイライト:

Docker では、エンタープライズ ユーザーの進化するニーズを満たすために、Docker Desktop を継続的に強化しています。 Docker Desktop 4.23,スタートアップ時間を 75%短縮した点では、パフォーマンスと安定性の両方に多大な投資を行いました。 これらの機能強化は、さまざまな業界の開発者に、より高速で信頼性の高いエクスペリエンスを提供するように設計されています。 (以前のパフォーマンスマイルストーンの詳細については、こちらをご覧ください

この投稿では、最新のパフォーマンス強化について説明します。

2400x1260 evergreen docker ブログ

最新のパフォーマンス強化

Apple Silicon MacのDocker VMMでパフォーマンスを向上

Apple Silicon Mac をお使いの方は、M1 および M2 Mac の Docker Desktop のパフォーマンスを向上させるために設計された強力な新しい仮想化オプションである Docker Virtual Machine Manager (Docker VMM) をご紹介いたします。現在ベータ版の Docker VMM は、多くのワークフローで、既存の Apple Virtualization Framework に代わる、より高速で効率的な代替手段を開発者に提供します (図 1)。 Docker VMM は、Docker Desktop 4.35 リリース以降で使用できます。

docker vmm (ベータ版)、apple 仮想化フレームワーク、qemu (レガシ) などの仮想マシン オプションを示す Docker デスクトップのスクリーンショット。
図 1: Docker 仮想マシンのオプション。

Docker VMM を試す理由

Docker Desktop でネイティブ ARM ベースのイメージを実行している場合、Docker VMM はパフォーマンスを向上させ、開発エクスペリエンスをよりスムーズかつ効率的にします。 Docker VMM を使用すると、次のことができます。

  • より高速な操作を体験する: Docker VMM は、特にキャッシュが構築されている場合に、 git status などの重要なコマンドの速度が向上しています。 私たちのベンチマークでは、Docker VMM は Apple Virtualization フレームワークで発生する可能性のある特定の速度低下を排除します。
  • 柔軟性を楽しむ: Docker VMM が適切かどうかわかりませんか? 大丈夫! Docker VMM はまだベータ版であるため、いつでも Apple Virtualization フレームワークに切り替えて、最適化が進むにつれて、将来のリリースで Docker VMM を再試行できます。

エミュレートされたIntelイメージはどうですか?

Rosetta を使用して Intel イメージをエミュレートしている場合、Docker VMM は現在 Rosetta をサポートしていないため、現時点では理想的な選択肢ではないかもしれません。 Intel エミュレーションが必要なワークフローでは、Docker VMM がネイティブ Arm バイナリ用に最適化されているため、Apple Virtualization フレームワークが引き続き最適なオプションです。

主なベンチマーク: 実際の速度向上

私たちのテストでは、次のような一般的なコマンドにDocker VMMを使用すると、大幅な改善 git status明らかになりました。

  • 初期 git status: Docker VMM は、Apple Virtualization フレームワークと比較して最初の実行が大幅に高速になり、パフォーマンスが優れています (図 2)。
  • 後続の git status: Docker VMM を使用すると、キャッシュがより効率的になるため、後続の実行も高速になります (図 3)。

Docker VMM を使用すると、イライラする遅延に別れを告げ、より迅速で応答性の高いエクスペリエンスをすぐに手に入れることができます。

Apple Virtualization Framework (~27 秒) と docker vmm ( 10 秒弱) のコールドキャッシュの git ステータス時間をグラフで比較。
図 2: 最初の git status 時間。
Apple 仮想化フレームワーク (~3 秒) と docker vmm ( 1 秒未満) の間のウォーム キャッシュの git ステータス時間をグラフで比較します。
図 3: その後の git status 回。

QEMUに別れを告げる

QEMU に依存している可能性のあるユーザーの皆様は、QEMU を従来のサポートに移行していることに注意してください。 Docker VMM と Apple Virtualization Framework は、最新の Apple ハードウェアに最適化された優れたパフォーマンス オプションを提供するようになりました。

Arm 上の Windows 用の Docker デスクトップ

特定のワークロード、特に並列コンピューティングや Arm 最適化タスクを含むワークロードの場合、Arm64 デバイスはパフォーマンス上の大きな利点を提供できます。 Docker Desktop が Windows on Arm をサポートするようになったため、開発者は使い慣れた Docker Desktop エクスペリエンスを維持しながら、これらのパフォーマンスの向上を活用でき、このアーキテクチャでのスムーズで効率的な運用を確保できます。

同期ファイル共有

大規模なプロジェクトや頻繁なファイル変更でパフォーマンスが低下する可能性がある従来のファイル共有メカニズムとは異なり、 同期ファイル共有 機能は、より安定したパフォーマンスの代替手段を提供します。 効率的な同期プロセスを使用して、ホスト上のファイルに加えられた変更がコンテナに迅速に反映され、その逆も可能になります。これにより、古い方法で経験したボトルネックや速度低下は発生しません。

この機能は、ホストとコンテナ間で共有ファイルを操作する開発者にとって、パフォーマンスの大幅なアップグレードです。 これにより、集中的なファイルシステム操作に関連するパフォーマンスの問題が軽減され、よりスムーズで応答性の高い開発ワークフローが可能になります。 頻繁なファイル変更を扱う場合でも、大規模で複雑なプロジェクトに取り組む場合でも、同期されたファイル共有により効率が向上し、コンテナとホストが遅延や過剰なリソース使用なしに同期を維持できます。

同期されたファイル共有の主なハイライトは次のとおりです。

  • 選択的同期: 開発者は、同期する特定のディレクトリを選択できるため、不要なファイルやディレクトリの同期による不要なオーバーヘッドを回避できます。
  • ファイル変更の高速化: これにより、ホスト環境で行われた変更が認識され、コンテナ内に適用されるまでの時間が大幅に短縮されます。
  • 大規模プロジェクトでのパフォーマンスの向上: この機能は、多くのファイルを含む大規模なプロジェクトでは、このようなセットアップにしばしば伴うファイル共有の遅延を最小限に抑えるため、特に有益です。
  • クロスプラットフォームのサポート: 同期ファイル共有はmacOSとWindowsの両方でサポートされているため、プラットフォーム間で汎用性が高く、一貫したパフォーマンスを提供します。

同期されたファイル共有機能は、Docker Desktop 427 以降のリリースで使用できます。

Red Hat Enterprise Linux (RHEL) 上の Docker Desktop の GA

Red Hat Enterprise Linux (RHEL) は、リソースを大量に消費するアプリケーションを使用する開発者にとって不可欠な、高性能な機能と効率的なリソース利用で知られています。 RHEL 上の Docker Desktop を使用すると、企業はこれらの最適化を十分に活用でき、開発から本番環境まで、よりスムーズで迅速なエクスペリエンスを提供できます。 さらに、RHELの堅牢なセキュリティフレームワークにより、Dockerコンテナは安全性の高い認定オペレーティングシステム内で実行され、金融、医療、政府などの業界に不可欠な厳格なセキュリティポリシー、パッチ管理、コンプライアンス基準が維持されます。

すべての Docker Desktop リリースでの継続的なパフォーマンス改善

Docker では、リリースごとに継続的なパフォーマンス向上を実現することをお約束します。 Docker Desktop の最近の更新では、ファイル共有とネットワーク パフォーマンスに次の最適化が導入されました。

  • 高度な VirtioFS 最適化:パフォーマンスの旅は Docker Desktop 433 でも続き、VirtioFS のさらなる微調整が行われました。ディレクトリキャッシュのタイムアウトを増やし、ホスト変更通知を最適化し、security.capability 属性に関連する余分な FUSE 操作を削除しました。 さらに、コンテナの終了後にキャッシュをクリアするAPIを導入し、ファイル共有の全体的な効率とコンテナのライフサイクル管理を強化しました。
  • バインド・マウントでの読み取りおよび書き込み操作の高速化。 Docker Desktop 4.32では、バインドマウントでの読み取りおよび書き込み操作を最適化することで、VirtioFS のパフォーマンスをさらに向上させました。これらの変更により、特に大きなファイルや高頻度のファイル操作を処理する際の I/O スループットが向上し、Docker Desktop の開発者の応答性と効率性が向上しました。
  • パフォーマンスを高速化するための拡張キャッシング:パフォーマンスの向上を続けて、Docker Desktop 4.31 は、属性キャッシングのタイムアウトを延長し、無効化プロセスを改善することで、VirtioFS ファイル共有に大幅な改善をもたらしました。これにより、ファイルの定期的な再検証のオーバーヘッドが削減され、共有ファイルに依存するコンテナ化されたアプリケーションが高速化されました。

これらのアップデートが重要な理由

Docker Desktop の各更新は、速度と信頼性の向上に重点を置いており、インフラストラクチャに合わせて簡単に拡張できます。 RHEL、Apple Silicon、Windows Arm のいずれを使用している場合でも、これらのパフォーマンス最適化により、作業の迅速化、ダウンタイムの短縮、生産性の向上に役立ちます。 最新のアップデートを常に把握して、開発環境を最高の効率で稼働させ続けます。

フィードバックを共有し、改善にご協力ください

私たちは常に、Docker Desktop を強化し、開発ニーズに最適なツールにする方法を探しています。 パフォーマンスに関するフィードバック、改善のアイデア、または議論したい問題がある場合は、ぜひご連絡ください。 パフォーマンスに関するフィードバック、改善のアイデア、または議論したい問題がある場合は、ぜひご連絡ください。 Calendlyを介してDockerデスクトッププロダクトマネージャーと直接チャットする時間を予定して、お気軽にお問い合わせください。

さらに詳しく