Windows 10 May 2020 Update(バージョン2004)がリリースされ、Windows Subsystem for Linux(WSL)において、従来のWSL 1に加えて、次世代のWSL 2が正式にサポートされました。WSL 2はHomeエディションでも利用可能であり、これにより2020年5月にリリースされた安定版(Stable)のDocker Desktop for Windows 2.3.0.2からはWindows 10 Homeでも利用できるようになりました。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載第157回では、「Windows 10」の「Windows Subsystem for Linux(WSL)」における次世代版「WSL 2」について説明し、これをバックエンド(WSL 2バックエンド)とした「Docker Desktop for Windows」のLinuxコンテナサポートについて説明しました。
そして、WSL 2はHomeエディションでも利用できるようになりますが、Docker DesktopがHomeエディションで利用できるようになるには少し時間がかかるかもしれないと予想しました。
しかし実際には、正式版のWSL 2に対応したWindows 10 May 2020 Update(バージョン2004、ビルド19041)が一般向けにリリースされる前、2020年5月11日(米国時間)にリリースされた「Docker Desktop for Windows 2.3.0.2」において、Homeエディション対応が行われました。つまり、Windows 10 バージョン2004が一般ユーザーに公開されたときには既にDocker DesktopはWindows 10 Home対応済みとなったわけです。
「Visual Studioサブスクリプション」(旧称、MSDNサブスクリプション)向けにWindows 10 バージョン2004が公開されたのは2020年5月12日(米国時間)であり、開発者はその日から試すことができたのです(Homeエディションを利用している開発者はいないと思いますが……)。本連載第157回の予想が外れてしまって申し訳ありません。おわびがてら、Windows 10 Home(x64)バージョン2004にDocker Desktopをインストールする手順を紹介します。
これまでのDocker Desktop for Windowsは、Hyper-VのLinux仮想マシンでバックエンドの「Docker Engine」を提供するLinuxコンテナ環境と、Hyper-VおよびContainersのWindowsコンテナ環境の2つのモードに対応し、切り替えて使用できました。
Windowsコンテナ環境では「Linux Container on Windows(LCOW)」というExperimental機能を有効にすることで、WindowsコンテナとLinuxコンテナの両方を同時にサポートすることもできます。
また、安定版バージョン「2.2.0.0」からは、WSL 2バックエンドのLinuxコンテナ環境にもExperimental機能として対応しました。いずれの環境もHyper-Vに依存するため、Hyper-Vを利用できないWindows 10 Homeエディションはシステム要件の対象外であり、インストールすることすらできませんでした(画面1)。
2020年5月11日(米国時間)にリリースされた安定版バージョン「2.3.0.2」(5月27日にバージョン「2.3.0.3」がリリースされています)ではWindows 10 バージョン2004におけるWSL 2の正式対応に合わせて、WSL 2に関する大きな変更があります。それは、WSL 2と互換性のあるOSであれば、Linuxコンテナ環境の既定としてWSL 2バックエンドを使用するように変更されたことです。これにより、Hyper-Vへの依存は必須ではなくなり、Windows 10 Homeエディションにも対応しました。
新バージョンのインストーラー(Docker Desktop Installer.exe)は、従来とは異なり、LinuxコンテナとWindowsコンテナどちらの環境を使用するか(後から切り替え可能)というオプションは存在せず、エディションによって提示されるオプションが異なります。
Pro以上のエディションであれば「Enable Hyper-V Windows Features」が提示され、おそらくこれを選択すると従来のHyper-VベースのLinuxコンテナ環境がインストールされるはずです(後でWindowsコンテナ環境に切り替えることができるはずです)。選択をオフにするとWSL 2バックエンドのLinuxコンテナ環境がインストールされるはずです。断言しないのは、筆者はアップデートでこのバージョンを使用しており、Pro以上のエディションへの新規インストールはしていないからです。
ちなみに、WSL 2を利用できない環境(バージョン1909など)で「Enable Hyper-V Windows Features」をオフにしてもインストールは進み完了しますが、Docker Desktopを開始する際にエラー(An error occurred Required Windows feature(s)not enabled: Hyper-V...)で終了します。
Homeエディションの場合、インストーラーは「Enable WSL 2 Windows Features」のオプションを提示します。これにより、WSL 2バックエンドのLinuxコンテナ環境をインストールすることができます(画面2)。
Windows 10 HomeエディションにDocker Desktop for Windowsをインストールする場合は、インストーラー(Docker Desktop Installer.exe)を開始する前に必要なハードウェアとWindowsの機能を準備しておきましょう。Hyper-Vのシステム要件と同じ、以下の要件を満たしている必要があります。これらの要件に対応しているかどうかは、Windowsの「システム情報」(Msinfo32.exe)で確認できます。
上記のシステム要件を満たしている場合は、WSLの機能を有効化し、WSL 2を既定で利用できるようにしておく必要があります。それには、次の手順で操作します。
■手順(1)
コントロールパネルの「プログラムと機能」から「Windowsの機能の有効化または無効化」を開き、「Linux用Windowsサブシステム」と「仮想マシンプラットフォーム」を有効化します。完了するにはWindows 10の再起動が必要です(画面3)。なお、Pro以上のエディションの場合は、「仮想マシンプラットフォーム」の代わりに「Hyper-V」を選択することもできます。
■手順(2)
以下のURLから正式版WSL 2に対応したLinuxカーネルの更新版をダウンロードして実行し、インストールします(画面4)。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
Windows 10にはWSL 2用のLinuxカーネルが標準で組み込まれていますが、これは開発中のWSL 2に対応したものであり、そのままでは正式版のWSL 2を利用することはできません。発表時にはWindows Updateで更新が提供されると説明されていましたが、筆者が試した時点(2020年5月中旬)では手動でダウンロードする必要がありました。
■手順(3)
「Windows PowerShell(管理者)」を開き、次のコマンドラインを実行して、WSLの既定をWSL 1からWSL 2に変更します(画面5)。このとき、Linuxカーネルの更新版が未インストールだと「WSL 2を実行するには、カーネルコンポーネントの更新が必要です。詳細についてはhttps://aka.ms/wsl2kernelを参照してください」と表示され、WSL 2への変更は行われません。WSL 2に変更されると、「WSL 2と主な違いについては、https://aka.ms/wsl2を参照してください」と表示されます。
wsl --set-default-version 2
■手順(4)
「Microsoft Store」からお好みのLinuxディストリビューションを入手してインストールします。この手順はオプションですが、Docker Desktop for Windows以外の目的でLinuxシェル環境を利用したい場合はインストールしておきます。
また、Linuxディストリビューションをインストールしておくと、Docker Desktop for Windowsの「WSL Integration」機能でLinux用Docker CLI(dockerコマンドなど)の利用環境にもなります。「手順(3)」で既定をWSL 2にしている場合、インストールしたLinuxディストリビューションはWSL 2で動作します。
インストール済みのLinuxディストリビューションがWSL 1とWSL 2のどちらで動作するかは、「wsl -l -v」を実行すると確認できます。
wsl -l -v
また、インストール後にバージョンを変換することも可能です(前出の画面5を参照)。「WSL Integration」機能は、WSL 1とWSL 2のどちらでも利用可能です。
wsl --set-version <ディストリビューション> 2または1
なお、近い将来「wsl.exe」にインストール用の新しいコマンドラインオプションが追加される予定です。そのオプションが実装された場合やWindows UpdateによるLinuxカーネルの更新が提供された場合、上記とは異なる手順になる可能性があります。少なくとも、より簡単になるはずです。
ここまでの準備が完了したら、Docker Desktopのインストーラー(Docker Desktop Installer.exe)を開始し、「Enable WSL 2 Windows Features」を選択して「Ok」ボタンをクリックしてインストールします(画面6)。
インストールが完了したら、いったんログオフして再度ログインするか、Windows 10を再起動してください。Docker Desktopが自動的に開始し、アクションセンターに「Docker is starting/Linux Containers WSL 2 backend is starting...」に続いて「Docker Desktop is running/Open Powershell and start hacking with docker or compose」と表示されたら、Linuxコンテナ環境が利用可能になります。
Docker CLI(docker.exe)はコマンドプロンプトまたはWindows PowerShell(いずれも管理者権限は不要)の任意のパスから実行できます。また、「Settings」の「Resources」にある「WSL Integration」を有効にすると、WSLの既定のLinuxディストリビューション(WSL 1とWSL 2は問いません)または指定したLinuxディストリビューションでDocker CLI環境が利用可能になります(画面7)。
なお、Windows 10 HomeのDocker DesktopはLinuxコンテナ専用です。「Switch to Windows containers」メニューはグレー表示となり、Windowsコンテナ環境に切り替えることはできません。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2019-2020)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.