Windows Subsystem for Linux 2に対応したDocker Desktopが目指すもの

Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 石橋啓一郎

2019-06-27 06:30

 「Windows Subsystem for Linux 2」(WSL 2)はWindowsにLinuxカーネルをもたらした。初代のWSLもLinuxのエミュレーションとしては優秀だったため、2になったからと言って大した影響はないだろうと思う人もいるかもしれないが、それは違う。少なくとも、Dockerのシニアソフトウェア開発者であるSimon Ferquel氏は、まったく違うと述べている。

 同氏はエンジニアリングブログの記事で、(コンテナをここまで重要な存在にした企業である)Dockerは、同社の開発プラットフォーム「Docker Desktop」のWindows版を、従来の通常の「Hyper-V」を使用したソリューションから、WSL 2用に用意された軽量なHyper-Vの仮想マシン(VM)を使用した環境に移行する予定であることを明らかにした。

 Ferquel氏はその理由について、Microsoftが提供するWSL 2は、事実上軽量なVM内で動作する本物のLinuxカーネルであり、こちらの方が従来のソリューションよりも軽量で、しかもDockerが独自に提供できるよりもWindowsと緊密に統合されているからだと説明している。DockerデーモンはWSL 2上で問題なく動作し、パフォーマンスも申し分ないという。

 実際にはどの程度のパフォーマンスなのだろうか。同氏は、コールドスタート後のWSL 2とDockerデーモンの起動について、「圧倒的に高速であり、開発用のラップトップでは、現バージョンのDocker Desktopの起動に数十秒かかるのに対して、2秒以内に立ち上がる」と述べている。

 Dockerが言うのだから間違いないはずだ。

 ただし、WSL 2に切り替えるという判断は、簡単に行われたわけではなかった。DockerはWSL 2を初期のビルドから評価しており、プロトタイプとしてさまざまなアプローチを試した。その結果として、より高速になったDocker Desktopが開発者の元に届けられようとしている。

 Dockerは、Hyper-VのVMが現在担っている部分を、WSL 2の統合パッケージで置き換える予定だ。提供される機能は現在のDocker Desktopと同じで、これには1クリックでKubernetesをセットアップする機能や、自動アップデート、透過的なHTTPプロキシー設定、WindowsからのDockerデーモンへのアクセス、Windowsファイルの透過的なバインドマウントなどの機能が含まれる。

 しかし、Docker開発者にとってもっとも重要なのは、Windows用とLinux用の両方のコンテナ化ソフトウェアを同時に開発できるようになることだろう。Ferquel氏は、そうなった暁には、「Linux環境を対象としたプロジェクトに取り組んでいる開発者や、Linux用に合わせたビルドプロセスを使っている開発者は大きなインパクトを受けるだろう。これで、Linux用とWindows用に2つのビルドスクリプトをメンテナンスする必要はなくなる。例えば、あるDockerの開発者は、Linuxマシンを使っている開発者と同じツールとスクリプトを使って、Windows上でLinuxのDockerデーモンを開発している」と述べている。

 同氏はまた、WSL 2のバインドマウントは、ネイティブのLinuxマシンとほぼ同等のI/O性能を発揮できると主張している。これで、Docker DesktopでI/Oの入出力が重要なツールチェーンを使用する際の大きな弱点が1つ解消される。この改善によって、NodeJSやPHP、その他のウェブ開発ツールは大きなメリットを受けられるはずだ。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]