Kubernetes学習環境として、Docker DesktopをWindows 10 Homeにインストールする

2020年5月に公開されたWindows 10 Version 2004から、Windows 10 Homeにも、Docker Desktopがインストールできるようになりました。WSLとの統合機能によって、”docker”、”docker-compose”、”kubectl”といった管理コマンドを、Linuxのシェルから利用できるため、Docker/Kubernetesの学習環境として、とてもオススメです。

Docker Desktop for Windowsのダッシュボード画面。Kubernetesも動作中


これまで、Docker Desktopは、Windows 10 Homeにインストールできませんでした。というのは、Docker Desktopには、Microsoft製のハイパーバイザー(仮想化ソフト)であるHyper-Vが必要でしたが、Windows 10 HomeはHyper-Vをサポートしていませんでした。
一方、Windows 10 Homeを、Hyper-V対応のWindows 10 Professionalにするには、1台あたり1万円以上と、かなり費用がかかりました(Docker Desktop自体は無料で利用できます)。

Windows 10 Version 2004にWSL2が搭載

Windows 10 Version 2004(Windows 10 May 2020 Update)には、WSL(Windows Subsystem for Linux)の新バージョンWSL2が搭載されました。仮想マシン上で動作するWSL2のために、Windows 10 HomeにもHyper-Vのサブセット版が用意されました。Docker Desktopは、このHyper-Vのサブセット版(とWSL2の仕組み)を使うことで、Windows 10 Homeでも動作するようになりました。

Docker Desktop 2.3.0.2からWindows 10 Homeでも動作可能に

さらに、Docker Desktopには、WSLとの統合機能が備わりました。統合機能を設定するだけで、”docker”、”docker-compose”といった管理コマンドが、WSL上ですぐに利用できます。コマンドの手動インストールや細かな設定作業は必要ありません。

Docker/Kubernetesの学習に適している

LinuxやmacOSといったUnixベースのOSと、Windowsとでは、さまざまな違いがあります。このため、Dockerを操作する際に、Unix向けのコマンド/スクリプトを、そのままコピペして実行しても、Windowsでは正常に動作しないことがあります。しかし、LinuxであるWSLを使えば、このような問題に頭を悩ます必要がなくなります。Dockerを学習中の方も、安心して利用できます。

なお、Docker Desktopは、Kubernetesをサポートしています。シングルノードでの動作ではあるものの、簡単に環境を用意できるため、Kubernetesの学習に最適です。もちろん、”kubectl”といったKubernetesの管理コマンドも、WSLから利用できます。

では、実際にインストールしてみましょう。

インストールの準備/WSL2の用意

まずは、WSL2を用意します。
WSL2は、Windows 10 Version 2004(Windows 10 May 2020 Update)以降で動作します。Windows 10のバージョンが古い場合は、下記URLからアップデートします。

https://www.microsoft.com/ja-jp/software-download/windows10

Windowsをアップデート

WSL2対応のWindows 10 Version 2004(Windows 10 May 2020 Update)にアップデートできたら、WSL2を有効にします。
PowerShellを管理者モードで起動して、次のコマンドを実行します。
※スタートメニューのWindows PowerShellを右クリックし、「管理者として実行する」をクリックすると、管理者モードでPowerShellが起動します。

1
2
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

GUIで設定する場合は、スタートメニューから「設定」→「アプリ」と選び、ウィンドウの幅が十分広いと右上に表示される「関連設定」の「プログラムと機能」をクリックします。左にある「Windowsの機能の有効化または無効化」をクリックし、「Linux用Windowsサブシステム」と「仮想マシンプラットフォーム」をチェックします。

「Linux用Windowsサブシステム」をチェック

「仮想マシンプラットフォーム」をチェック

設定したら、いったん再起動します。

再びPowerShellを起動して、WSLのデフォルトをWSL2にしておきましょう。

1
> wsl --set-default-version 2

Linuxカーネルの更新を促す画面が表示されます。説明の通りに、WSL2用のLinuxカーネルをダウンロードし、インストールします。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

コマンド実行環境として、Ubuntuをインストール

Microsoft Storeアプリを起動し、Ubuntuまたはお好きなLinuxディストリビューションをインストールします。ここでは、最新版(2020年7月現在)であるUbuntu 20.04 LTSをインストールしました。

Microsoft StoreからUbuntuをインストール

インストール後、起動すると、Ubuntu上のユーザー名/パスワードが尋ねられますので、設定します。

ユーザー名とパスワードを設定

ここで、UbuntuがWSL2としてインストールされているか確認しておきます。PowerShellを起動して、次のコマンドを実行します。

1
2
3
> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2

もし、Ubuntuがバージョン1としてインストールされた場合は、以下のコマンドで、いったんUbuntuを停止し、バージョン2(WSL2)に変更します(変更には数分かかります)。
※「Ubuntu-20.04」のところは、インストールしたディストリビューション・バージョンに置き換えてください。

1
2
> wsl -t Ubuntu-20.04
> wsl --set-version Ubuntu-20.04 2

以上で準備は完了です。

Docker Desktopのインストール

つぎに、Docker Desktop for Windowsをダウンロードし、インストールします。
https://www.docker.com/get-started

Docker Desktopをダウンロード

インストールオプションでは、「Enable WSL 2 Windows Features」にチェックが入っていることを確認します(デフォルトでチェック済)。

「Enable WSL 2...」をチェック

インストールが完了したら、いったんWindowsをサインアウトします。再度サインインすると、Docker Desktopが起動してきます。

設定画面で、Kubernetesを有効にします。初回は、起動するまで数分かかります。

「Enable Kubernetes」をチェック

WSL統合機能が有効になっていることを確認します。

「Enable integration...」をチェック

Ubuntuを起動して、以下のコマンドで、DockerとKubernetesのバージョンを確認してみましょう。

1
2
$ docker version
$ kubectl version

docker/kubectlコマンドを実行

バージョンが表示されたら、正常にインストールができています。

このように、Windows 10 Homeでも、Windows 10 Version 2004とDocker Desktopにより、自分のローカルPC上でのKubernetes環境の構築が簡単にできます。Docker/Kubernetesの学習に、ぜひ役立ててください!