Docker DesktopをWindowsにインストールします。
https://www.docker.com/
公式サイトからダウンロードして実行するだけです。
インストールの途中、「winpty-agent.exe」がウイルスであるとでましたが、Dcokerにウイルスがあるとは考えにくいので無視することにした。インストール完了後は再起動が必要です。
このまますんなり進むと思いましたがWSL2のインストールが不完全というメッセージが表示されDockerが起動しません。
WSL 2 installation is incomplete
The WSL 2 Linux kernel is now installed using a separate MSI update package.
Please click the link and follow the instructions to install the kernel update:
https://aka.ms/wsl2kernel.
エラー内容にあるリンクをクリックするとマイクロソフトのページに行き、手順4のLinuxカーネル更新プログラムパッケージをダウンロードしてインストールせよとのことでした。
インストールを済ませた後は、Windows PowerShellでWSL2を既定のバージョンに設定します。
wsl --set-default-version 2
次に選択したLinuxディストリビューションをインストールするわけですが、ubuntu20.04 LTSをインストールすることにしました。そのリンクをクリックするとMicrosoft Storeのページにいくので「入手」をクリックします。これをクリックするとアプリのMicrosoft Storeが起動するのでインストールします。
インストール後に起動するとまたエラーが発生しました。
WslRegisterDistribution failed with error: 0x800701bc
Error: 0x800701bc WSL 2 ???????????? ??????????????????????? https://aka.ms/wsl2kernel ?????????
そこでWindows更新アシスタントをダウンロードすることにしました。このプログラムを実行すると現在のバージョンは21H1で最新バージョンが21H2ということなのでそのまま更新することにしました。この更新はしばらく時間がかかります。
再起動後、再びubuntuを起動してもエラー内容は消えません。一度ubuntuをアンインストールしてコマンドによるインストールをすることにしました。
マイクロソフトのページの記述によると、わかりやすくするために、通常はこれをを使用してLinux用Windowsサブシステムをインストールすることをお勧めします、とのことでした。
wsl --install -d ubuntu
しかし、同じ内容のエラーがでてうまくいきません。
「Windowsの機能の有効化または無効化」でLinux用Windowsサブシステムにチェックは入れてあるのにうまくいきません。以前インストールした時は正常にインストール出来ました。その時はHyper-Vもインストールしていましたがそのような記述はどこにもありません。
ここで諦めるわけにもいかないので、マイクロソフトのページを見ているとある記事が目に留まりました。
エラー: WSL 2 のカーネル コンポーネントを更新する必要があります。 詳細については、https://aka.ms/wsl2kernel にアクセスします。
Linux カーネル パッケージが %SystemRoot%\system32\lxss\tools フォルダーにない場合、このエラーが発生します。 このインストール手順の手順 4 に従って Linux カーネル更新プログラム MSI パッケージをインストールすることにより、このエラーを解決できます。 [プログラムの追加と削除] から MSI をアンインストールして、インストールし直すことが必要な場合があります。
ということですので一度最初にインストールしたLinuxカーネル更新プログラムを削除して、インストール後再起動しました。その後、Ubuntuを起動すると今度は正常に起動しました。
その後、新しいユーザーとパスワードを決めます。
DockerもLinuxが正常に起動した時点で正常に動作するようになりました。