Microsoftは、「Visual Studio Code」で「WSL 2」のリモートコンテナを使用する方法を公式ブログで解説した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Microsoftは2020年7月1日(米国時間)、「Visual Studio Code」(VS Code)で「WSL 2」(Windows Subsystem for Linux 2)にあるリモートコンテナを使用する方法を「Visual Studio Code Blog」で紹介した。
WSL 2は、Microsoftが2020年5月にリリースした「Windows 10 バージョン2004」(May 2020 Update)に標準搭載された。Dockerも2020年5月に、バックエンドとしてWSL 2をサポートした「Docker Desktop for Windows」(Docker Desktop)のStable版「Docker Desktop Community 2.3.0.2」をリリースしている。
Microsoftは、WSL 2と最新版Docker Desktopにより、仮想化の仕組みが変わると述べ、次のように説明している。
WSL 2は、軽量仮想マシン(VM)内で本物のLinuxカーネルを使用するという新しいアプローチにより、「Windows Subsystem for Linux」を実装している。Windows環境にシームレスに、深く統合された操作感を提供するよう最適化されており、起動が高速で、リソース消費が少なく、VMの構成や管理は不要だ。
さらに、WSL 2はLinuxカーネルを含んでいるため、システムコール機能が全てそろっている。これは、Dockerのようなお気に入りのアプリケーションが高い信頼性で動作することを意味する。
WSL 1では、WindowsとLinuxの根本的な違いから、Docker EngineをWSL内で直接動作させることができなかった。そこでDockerチームは、「Hyper-V」の仮想マシン(VM)と「LinuxKit」を使用する代替ソリューションを開発した。だが、WSL 2がLinuxのシステムコールを全て備えたため、WSL 2内で完全に動作するようになり、これに伴ってDockerチームはさらに投資を増やした。
2020年5月にリリースされたDocker Desktopでは、これまでよりはるかに高速でリソース消費が少ないコンテナを作成できるようになった。WSL 2の動的メモリ割り当てを使用するからだ。Docker Desktopで作成するコンテナのコールドスタートは素早く、10秒に満たない。前バージョンのDocker Desktopで作成したコンテナでは、1分近くもかかっていた。新しいDocker DesktopがWSL 2で動作する際にHyper-Vは不要であるため、以下で説明する手順は、Windows 10 Homeにも当てはまる。
VS CodeでWSL上のリモートコンテナを使用するには、次のような準備が必要だ。
Dockerのインストール時にはWSLがインストールされていることを検知して、ポップアップウィンドウを表示し、WSLとの統合を有効にするようユーザーに求める。ここでは[Enable WSL integration]を選択する。
VS CodeをWSL 2エンジンに接続する。そのためには、Ubuntuのターミナルを開き、ユーザーが利用しているソースコードフォルダに移動して「code .」と入力する。これにより、WSLをフルタイム開発環境として使えるVS Codeインスタンスが起動する。
コマンドパレットからWSLに接続することもできる。ここではシンプルな「HelloNode」アプリケーションを開く。
VS Codeを開くと、VS Codeは、WSLがインストールされていることを認識し、「Remote - WSL拡張機能」をインストールするよう促すので、[Install]を選択する。
拡張機能をインストールしたら、[Reload Required]を選択してVS Codeをリロードする。これにより、WSL 2に接続できるようになる。
リロードしたら、ウィンドウ左下隅のWSLインジケーターの表示が変わる。Ubuntuに接続していることが確認できる。
「Remote - WSL拡張機能」をインストールすると、「Remote Explorer」がVS Codeに追加される。Remote Explorerでは、Linuxディストリビューションに関する情報を確認できる。
Copyright © ITmedia, Inc. All Rights Reserved.