米Dockerは、Docker Desktopを使用したファイル共有のコツや、将来的にDocker Desktopへの搭載が見込まれるファイル共有機能などについて、公式ブログの1月24日(現地時間)付の投稿にて紹介している。
同記事では、Docker Desktopをいくつかのオープンソースのツール上に構築された単なるUIではなく、macOSまたはWindows環境にてLinuxコンテナを開発および実行するための環境と位置づけており、ホストとのシームレスな統合によって、あたかもネイティブで実行されているように見える。
緊密な統合が図られているものの、仮想化であるため、非常に小さいながらもオーバーヘッドが常に存在し、巨大なソースツリーと大量の読み取り/書き込みがある開発環境では、目に見える影響を及ぼす可能性がある。
なお、名前付きボリュームは仮想マシン自体のファイルシステム内に作成されるので、パフォーマンス上の問題は発生しない。また、WSL 2ではWindowsファイルシステムからマウントされたファイルは低速で、名前付きボリュームは高速だが、WSL仮想マシン内にあるLinuxファイルシステムは高速となる。
これらを踏まえてDockerでは、アクティブに編集しているソースコードはバインドマウントに保存し、大規模な静的依存関係ツリーまたはライブラリは名前付きボリュームまたはWSLに移動したり、コンテナイメージにベイクしたりすること、データベースには名前付きボリュームまたはWSLを使用することなどを提案している。
現在、Docker Desktopではファイル共有のパフォーマンスを向上すべく、virtiofsに基づくファイル共有の実験を行っており、macOS向けDocker Desktopにはすでにテクノロジープレビューがリリースされ、今後はLinux向けDocker Desktopへの搭載も予定する。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です