Docker、ファイル操作を最大10倍高速化する新機能を「Docker Desktop」で提供開始:買収したMutagenのファイル共有技術を活用
Dockerは、Docker Desktopで同期ファイル共有機能の提供を開始した。
Dockerは2024年2月6日(米国時間)、Docker開発環境をさまざまなOS上に構築できる「Docker Desktop」で、同期ファイル共有機能(Synchronized File Shares)を提供開始した。
「同期ファイル共有機能により、高速かつ柔軟なホスト間ファイル共有が実現し、膨大なコードベースを扱う開発者のパフォーマンスが向上する。開発者は2〜10倍高速にファイル操作できるようになる」と、Dockerは述べている。
開発者のエクスペリエンス向上
Dockerは次のような開発者にとって同期ファイル共有機能が最適だとしている。
- 10万ファイル以上の大規模なリポジトリやモノレポを管理しており、ストレージ容量を多く消費する開発者
- 仮想ファイルシステム(VirtioFS、gRPC FUSE、osxfsなど)を利用し、ワークフローのスケーラビリティの問題に直面している開発者
- パフォーマンス上の制約があり、所有権の競合を心配することなく、シームレスなファイル共有ソリューションを求めている開発者
機能の利用を開始するには、Docker Desktopの[Settings(設定)]から[Resources(リソース)]セクション内の[File sharing(ファイル共有)]タブに移動して有効化する必要がある。
同期ファイル機能機能はどのような問題を解決するものなのか
Linuxがファイル(コード、スクリプト、イメージなど)をコンテナで利用できるようにする仕組みとしてバインドマウントがある。docker runコマンドやdocker createコマンドにある-v/--volumeオプションでホストパスを指定した場合(またはComposeのvolumes:にホストパスを指定した場合)に使用される。フォルダが読み取り/書き込みモードでバインドマウントされている場合、コンテナがホスト側のァイルシステムに対して書き込むこともできる。
Docker Engineなど、Linux上でコンテナをネイティブに使用する場合、同機能はLinuxカーネルによって有効化され、パフォーマンスへの影響はない。だが、Docker Desktopのようなクロスプラットフォームソリューションを使用する場合、バインドマウントを有効にするために、ホストシステムとLinux間で追加のファイル共有メカニズムが必要になる。
そうした背景の下、Dockerはこれまで、幾つかの仮想ファイルシステムソリューションを使用してきた。だが、仮想ファイルシステムを利用する場合、パフォーマンスの問題が生じる。プロジェクトに数千(場合によっては数百万)ものファイルが含まれ、数百MBあるいは数GBにもなる場合、開発ツールが使用する負荷の高いシステムコールは、極端に遅くなる可能性があるためだ。
こうしたパフォーマンスの問題を解決するのが、同期ファイル共有機能だ。同期ファイル共有を使用すると、開発者はDocker DesktopのVM内で、ホストファイルシステムの場所のext4(Linuxのファイルシステム)でバックアップキャッシュを作成できる。これらのキャッシュは、Mutagenのファイル同期エンジンを使用してホストファイルシステムと同期される。そのため、ファイルは超低遅延で双方向に反映されるという。
「同期ファイル共有機能のデメリットとして、ファイルをホストと仮想マシンの両方に保存する必要があるため、ストレージの使用量が通常は2倍になることが挙げられる。しかし、ファイルの使用量と時間を比較すると、このデメリットはほとんど問題にならないだろう」と、Dockerは述べている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Dockerイメージのビルド時間を最大39倍高速化する「Docker Build Cloud」提供開始
Dockerは、Dockerイメージのビルド時間を短縮するソリューション「Docker Build Cloud」を顧客向けに提供開始した。 - Docker、「Docker Desktop」のCLIツール「docker init」を正式リリース
Dockerは、「Docker Desktop 4.27」で新しいコマンドラインインタフェースツール「docker init」の一般提供を開始した。 - Docker Desktopの「ファイル同期に時間がかかる問題」をMutagen Extensionで解決 Docker
Dockerは、オープンソースのディレクトリ同期開発ツール「Mutagen」を提供するMutagen IOを買収したことを発表した。買収によってDockerは「開発者のニーズに対応し、コミュニティーや顧客に利益をもたらすことを目指す」としている。