ニュース

Windows版「Docker Desktop」も「WSL 2」対応に ~テクニカルプレビュー版が7月公開へ

「Hyper-V」仮想マシンが「WSL 2」統合パッケージに置き換え

公式ブログ“Docker Engineering Blog”

 米Dockerは6月16日(現地時間)、「Docker Desktop for Windows」を「WSL 2」に対応させる計画を明らかにした。「Docker Desktop for WSL 2」のテクニカルプレビュー版が7月にもダウンロード提供される。

 「Windows Subsystem for Linux(WSL)」は、LinuxのELF64バイナリをWindows 10上でネイティブ実行する仕組み。現行の「WSL 1」はLinuxのシステムコールをWindowsのAPIへ逐次変換する方式を採用しているが、この方法ではネイティブLinuxの動作をすべて再現することはできない。そのため、「Docker Desktop for Windows」は「Docker Engine」と「Kubernetes」を「WSL」内で直接動作させるのではなく、「Hyper-V」仮想マシンと「LinuxKit」を使った代替ソリューションを採用していた。

 しかし、今春にアナウンスされた「WSL 2」ではアーキテクチャーが一新。LinuxカーネルをまるごとOSに内蔵し、軽量仮想マシンに処理を任せる方式に改められた。これによりソフトウェア互換性が向上し、「WSL 2」でも「Docker」がそのまま動作するようになった。そもそも、この仕組みは「Hyper-V」+「LinuxKit」のアプローチと非常によく似ているので、Windowsと密接に統合されている「WSL 2」をそのまま利用した方が有利だ。また、「WSL 2」はパフォーマンスが高く(とくにI/O周りが改善)、Windowsファイルのバインドマウントを「Samba」に依存している問題が解決される上、「Visual Studio Code」のリモートデプロイ拡張機能などとの相性もよい。

 そこで、「WSL 2」の活用を前提とした「Docker Desktop」が新たに開発されることになった。新しい「Docker Desktop for WSL 2」では、現在利用されている「Hyper-V」仮想マシンが「WSL 2」統合パッケージに置き換えられる。このパッケージでは、現行の「Docker Desktop」でサポートされている機能がすべて提供される予定。現行版との共存(サイドバイサイド実行)も可能で、移行も容易になるという。

「Docker Desktop for WSL 2」のアーキテクチャー