正式公開されたWSL2にUbuntuをインストールしてDocker Desktopを動かす

参考URL: https://docs.microsoft.com/ja-jp/windows/wsl/install-win10

Windows 10の更新(May 2020 Update)により、WSL2が利用できるようになりました。これにより、Docker DesktopがHyper-Vなしでも動くようになったようです。この記事ではHyper-Vで動いていたDocker Desktopを、WSL2上で動くようにする方法を書きます。

Docker Desktop on WSL 2

WSLとは

Windows Subsystem for Linux(WSL)とは、Windows上でLinuxを動かすことができるようになる機能です。LinuxはWindowsと同じOSで、イメージとしてはWindows PCの中に仮想的なLinux PCが存在するようになります。Linuxについて基本を総ざらいしたい方には以下の書籍がおすすめです。(クリックするとAmazonページが別窓で開きます。)

Windowsのバージョン

2020/5/28に配布がスタートしたWindows10のバージョン2004であることがWSL2を有効にする条件です。それ以前はWindows Insider Programで先行インストールできましたが、バージョン2004で正式公開されました。Windows Insider Programをのやめ方はこちらの記事で紹介しています。

Windows 10のバージョン2004を確認

PowerShellでの準備

参考URLにある通り、以下のコマンドをPowerShellで実行して再起動してください。dism...コマンドを実行したら再起動しましょう。PowerShellは管理者権限で実行するように注意してください。PowerShellはWindowsキーを押し、Powerなどと検索すると出てきます。

PowerShell起動の様子

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
wsl --set-default-version 2

dismコマンド実行結果

wslコマンド実行結果

うまくいけば、画像のように表示されるのですが、私はこの時点ではwsl --set-default-version 2がうまくいかなかったので、次のステップでインストールしました。

  1. Ubuntuをインストール(Ubuntuの入手を参照)
  2. Linuxカーネルの更新(Linuxカーネルの更新を参照)
  3. Ubuntuをアンインストール(Windowsキーを押し、Ubuntuで検索、右クリックからアンインストール)
  4. wsl --set-default-version 2を実行
  5. Ubuntuをインストール

先にUbuntuをインストールしてしまうと、WSL1になってしまいます。WSL2を利用したい場合は先にwsl --set-default-version 2を実行しないといけないようです。

Linuxカーネルの更新

Linuxカーネルの更新が求められた場合は以下のリンクを参考に、Linuxカーネルを更新してください。

Linuxカーネルの更新

Ubuntuの入手

Microsoft StoreからUbuntuを入手します。以下のリンクからMicrosoft Storeのページにアクセスできます。

Windowsキーを押し、Ubuntuなどと検索すると入手したUbuntuが出てきます。これをクリックするとインストールが始まります。ユーザ名とパスワードを求められるので入力すると、インストールが完了します。

Ubuntuのインストール

初期設定画面、しばらく待つ

IDとパスワードを入力して完了

私はこのスクショを撮影した時点では失敗していたので、VERSIONのところが1になってしまっていますが、成功していればVERSIONのところが2になっているはずです。

WSLのバージョン、Ubuntuのバージョンを確認

Docker Desktopの設定

Docker Desktopのインストールは飛ばします。Docker Desktopを起動し、タスクトレイのアイコンを右クリック、Settingsをクリックします(画像一枚目)。Generalタブから、Use the WSL2 based engineのチェックマークをつけます(画像二枚目)。Resourcesのタブから使用したいUbuntuのバージョンを選びます(画像三枚目)。これまでの説明は全部Ubuntu 18.04をインストールしたときのスクリーンショットを使っていましたが、Ubuntu 20.04があることに気づき、ここでは20.04が表示されています。

Docker Desktopの設定を開く

WSL 2を使うように設定する。

デフォルトのUbuntuバージョンを選択

Hyper-Vを切ってみる

本当にHyper-Vなし(Windows home edition)でもできるのか確かめるために、Hyper-VなしでDocker Desktopを起動してみました。うまくいってそうに見えます。

Hyper-Vのチェックを外し、再起動後Docker Desktopが立ち上がるか確認

しかし、一つ気になる症状がありました。Windowsの機能からHyper-Vのチェックを外し、再起動してからDocker Desktopを立ち上げるとうまくいくのですが、以下のコマンドからHyper-Vを無効化して再起動し、Docker Desktopを立ち上げるとエラーが出てしまいました。

bcdedit /set hypervisorlaunchtype off

エラーのリンクからこちらのページに飛ばされます。Virtualizationすなわち仮想化はEnabledになっているので、Hyper-Vを無効化した時の問題なのでしょうか。

Hyper-VやWSL 2を手動でアンインストールしたり、仮想化を無効にするとDocker Desktopが起動しない

と書いてあります。

タイトルとURLをコピーしました