2020年5月に公開されたWindows 10 Version 2004から、Windows 10 Homeにも、Docker Desktopがインストールできるようになりました。WSLとの統合機能によって、”docker”、”docker-compose”、”kubectl”といった管理コマンドを、Linuxのシェルから利用できるため、Docker/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には、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
WSL2対応のWindows 10 Version 2004(Windows 10 May 2020 Update)にアップデートできたら、WSL2を有効にします。
PowerShellを管理者モードで起動して、次のコマンドを実行します。
※スタートメニューのWindows PowerShellを右クリックし、「管理者として実行する」をクリックすると、管理者モードでPowerShellが起動します。
1 | > dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart |
GUIで設定する場合は、スタートメニューから「設定」→「アプリ」と選び、ウィンドウの幅が十分広いと右上に表示される「関連設定」の「プログラムと機能」をクリックします。左にある「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をインストールしました。
インストール後、起動すると、Ubuntu上のユーザー名/パスワードが尋ねられますので、設定します。
ここで、UbuntuがWSL2としてインストールされているか確認しておきます。PowerShellを起動して、次のコマンドを実行します。
1 | > wsl -l -v |
もし、Ubuntuがバージョン1としてインストールされた場合は、以下のコマンドで、いったんUbuntuを停止し、バージョン2(WSL2)に変更します(変更には数分かかります)。
※「Ubuntu-20.04」のところは、インストールしたディストリビューション・バージョンに置き換えてください。
1 | > wsl -t Ubuntu-20.04 |
以上で準備は完了です。
Docker Desktopのインストール
つぎに、Docker Desktop for Windowsをダウンロードし、インストールします。
https://www.docker.com/get-started
インストールオプションでは、「Enable WSL 2 Windows Features」にチェックが入っていることを確認します(デフォルトでチェック済)。
インストールが完了したら、いったんWindowsをサインアウトします。再度サインインすると、Docker Desktopが起動してきます。
設定画面で、Kubernetesを有効にします。初回は、起動するまで数分かかります。
WSL統合機能が有効になっていることを確認します。
Ubuntuを起動して、以下のコマンドで、DockerとKubernetesのバージョンを確認してみましょう。
1 | $ docker version |
バージョンが表示されたら、正常にインストールができています。
このように、Windows 10 Homeでも、Windows 10 Version 2004とDocker Desktopにより、自分のローカルPC上でのKubernetes環境の構築が簡単にできます。Docker/Kubernetesの学習に、ぜひ役立ててください!