Windows 10 の最新アップデート(バージョン 2004)が 5 月に迫っています。
「Windows 10 May 2020 Update」、リリース近づく--「Release Preview」リングで公開 - ZDNet Japan
その中でも目玉というと WSL2(Windows Subsystem for Linux 2)ですが、Windows Insider Programに参加していると、アップデートを待たずに ver.2004 を導入することができ、WSL2 も使うことができます。
自宅で使っているデスクトップパソコンの SSD の容量が少なくなってきており、M.2 SSD(NVMe 接続)を試したかったところなので購入し、良い機会だったので Windows のクリーンインストールもしました(ディレクトリが大分汚くなってきていたので)。
ついでに、クリーンインストール後に Insider Program を使って WSL2 を有効にしてみました。
WSL2 の有効化
基本的な方法は以下のサイトを参考にしました。
WSL2 で劇的に変わるあなたの Web アプリケーション開発環境【その 2:導入編】 | SIOS Tech. Lab
WSL を有効化し、ver.2004 からはディストリビューションに対してバージョン指定をすることで WSL2 を有効化することができます。
ディストリビューションに対して設定するので、WSL と WSL2 の両方を使うことができます。
バージョンを 2 にするには以下のコマンドを実行します。私は Ubuntu-18.04 を使っているのでそちらを指定しています。
wsl --set-version Ubuntu-18.04 2
私の環境では、カーネルを更新してください(意訳)と表示されたので以下のサイトからカーネルを更新するインストーラーを手に入れます。
WSL 2 Linux カーネルの更新 | Microsoft Docs
カーネルの更新後、再度上記のコマンドを実行すると変換が完了しました。
と表示されます。
WSL2 で Docker を利用する
WSL2 では完全な Linux カーネルを利用するので、WSL では利用できなかった Docker が使えるようになります。
Docker Desktop のバージョンが 2.2.3.0 以上であれば WSL2 で利用できます(2020 年 4 月 23 日時点の最新は ver.2.3.0.0)。
Docker Desktop WSL 2 backend | Docker Documentation
上記のサイトから Docker Desktop for Windows を入手し、手順にしたがってインストールをします。WSL2 がすでに有効である場合は特に変更する点はないはずです。
インストール完了後自動的に Docker が立ち上がり、コンテナの立ち上げ練習が始まり、正常に動作すれば完了です。
まとめ
WSL2 と Docker の組み合わせで非常に素晴らしいことは、Windows 起動時に全てが追従して起動されることです。
WSL1 のときにも述べましたが、Windows の起動後に仮想マシンをわざわざ立ち上げるという必要がありません。
VirtualBox や Vagrant を使っていたときは結局起動処理を行わなければならず、早くても 1 分か 2 分待つ必要がありましたが、WSL2 ではたった数秒でそれが行われます。
WSL2 の起動後に Docker も自動的に立ち上がるので、デスクトップ画面が表示されてから 10 秒以内にはすぐに開発作業に入れます。
WSL2×Docker を入れたのは今日が初なので、これ以降つらいことがなければ Windows で開発するにはこれ以上ない状態だと思います。
備考
Windows を捨てて、そもそも Linux をメインにすればいいんじゃないかと友人に言われましたが、OS が Windows であることの尤もな理由はゲームができるからです。
Linux メインにすると対応していないソフトが増えるので、せっかくグラフィックボードが載っかっているデスクトップパソコンを Windows 以外の OS にはしません。
そういった理由もあり、WSL2 は開発環境と遊び環境を両立できる素晴らしい仕組みであるので、とても良いです。