【Docker基礎】WSL2とは何者か

 Docker Desktop for Windows と併せてよく耳にするようになった「WSL2」というワード。これは Windows Subsystem for Linux 2 の略で、簡単に言えば「Windows 上で Linux をほぼネイティブに動かせる機能」です。

 もともと、Windows 10 Home では Hyper-V が使えないという制約があり、Docker Desktop を使うには Pro 以上が必要とされていました。しかし、2020 年春の Windows アップデートにより WSL2 がサポートされ、Home エディションでも Docker Desktop を使えるようになったのです。ここでは、そんな WSL2 がどんな仕組みなのか、なぜホームユーザーだけでなく、すべての Windows ユーザーに関係があるのかを解説していきます。

WSL2 (Windows Subsystem for Linux 2) とは?

  • Windows 10 上で Linux を動かす仕組み
     もともと WSL (Windows Subsystem for Linux) は、Windows 内で Linux のバイナリを動かす機能でした。WSL2 になって大幅に進化し、本物の Linux カーネル を使うため、より互換性やパフォーマンスが高まったといえます。
  • Home エディションで Docker が使えるように
     Hyper-V が制限されていた Windows 10 Home でも、WSL2 を利用することで Docker Desktop が正常に動作可能に。これにより実質すべての Windows 10 ユーザーが Docker を楽しめるようになりました。

Windows のデスクトップ版 Docker が実は 2 種類ある

 WSL2 の登場によって、Windows 用の Docker Desktop には大きく 2 つの動作モードがあります。Docker社自身も、WSL2の使用を推奨しているため、本サイトではこちらのバージョンを使って解説していくことにします。

  1. 従来版(Hyper-V 方式)
    ・Docker 社が提供する Linux OS(独自の軽量 Linux ディストリビューション)を使い、Hyper-V で仮想化する。
    ・Windows 10 Pro 以上が前提だった。
  2. WSL2 対応版
    ・Microsoft 社が提供する Linux (WSL2) を使い、Docker を実行する。
    ・Home エディションも含むすべての Windows 10 (2020 春更新以降) で動作可能

WSL2 対応版従来版(Hyper-V 方式)との比較

項目デスクトップ版(WSL対応版)デスクトップ版(従来版)
バージョンWSL2対応版従来版(Hyper-V)
使用するLinuxの提供元マイクロソフト社Docker社(パッケージに含まれる)
仮想化ソフトウェアHyper-V(マイクロソフト社)Hyper-V(マイクロソフト社)

ポイント

  • Docker Desktop は 1 つのインストーラですが、どの Linux を使うかを切り替えられる仕組みになっており、Docker 社提供の Linux か、マイクロソフト社提供の Linux (WSL2) かを選択できる。

「OS が 3 つ」のイメージ

Docker Desktop for Windows + WSL2 を利用すると、結果的に以下の 3 つの OS が同居するイメージになります。

  1. Windows 自身
  2. Docker 社がパッケージに含める Linux(Hyper-V 方式などで動く)
  3. WSL2 で動作する Microsoft 社提供の Linux

 実際には同時に全てを使うわけではなく、Docker Desktop の管理画面からどちらの Linux を使うか切り替える形です。一般的には今後、WSL2 が推奨される流れとなっています。

Linuxの切り替え方法

 パッケージッケージに含まれるDocker社提供のLinuxと、Microsoft社提供のWSL2の2つのLinuxは、Dockerの管理画面より切り替えらるようになっています。

なぜ WSL2 が推奨されるのか?

  • パフォーマンスの改善
    Hyper-V と比べて軽快に動くケースが報告されており、I/O 性能などが向上する
  • Home エディション対応
    多くのユーザーが手軽に Docker Desktop を利用できるようになった
  • Docker 社も推奨
    公式ドキュメントやコミュニティでも、WSL2 を使う設定が推奨されており、今後は主流になる見込み

まとめ

  1. WSL2 とは
    ・Windows 上で本格的な Linux を動かす仕組み。
    ・2020 年春のアップデート以降、Windows 10 Home でも対応
  2. Docker Desktop の 2 つの動作モード

    従来版 (Hyper-V):Docker 社の軽量 Linux を使う方式 (Pro 以上向け)
    WSL2 対応版:Microsoft 提供の Linux を使う方式 (Home 含む全エディション向け)
  3. OS が 3 つ!
    ・Windows, Docker 社提供の Linux, WSL2 (Microsoft 提供 Linux) が同居する可能性
    ・Docker Desktop の管理画面でどの Linux を使うかを切り替え可能
  4. WSL2 が主流に
    ・パフォーマンスや互換性が良く、多くのユーザーにメリットがある。
    ・Docker 社も推奨している。

 このように、WSL2 の登場によって Windows ユーザー全体が Docker を使えるようになり、「Home だから Docker 使えない…」という悩みが解消されました。この後のコンテンツから、Dockerの学習環境構築の手順について詳しく解説していきます。