Windows 10 HomeにDocker Desktop for Windows インストール

# 概要

Windows 10 Homeで、Docker Desktop for Windowsを利用するための手順を示す。

以下の内容を行う。

- Microsoftアカウントで「Windows Insider Program」への参加
- Windows Insider Program によるWindows最新バージョン取得
- WSL2の有効化
- WSL2 Linuxカーネルインストール
- Docker Desktop for Windows インストール

# 事前準備

※これを記述した2020/05/09時点では必要だが、Windows Updateで標準でインストールされるようになった場合は不要になると思われる。

- Microsoftアカウントを作成しておくこと。
- 作成したアカウントで、Windows Insider Programに参加しておくこと。  
  https://insider.windows.com/ja-jp/

# 手順

## Windows Insider Programのインストール
1. Windowsの「設定 > 更新とセキュリティ > Windows Insider Program」を開く。
2. 「開始する」をクリックする。
    - 画面が変わらず進まない場合
        - MicrosoftアカウントでMicrosoft Insiderに登録した後、少し待つ必要があるかもしれない。
        - すでに複数アカウント選択できるような状態の場合、別のアカウントを選択して切り替えて、再度戻したりすると進められる場合がある。
3. Microsoft Insiderに登録したしたMicrosoftアカウントを指定する。
4. 指示に従って進める。
    - プレビュービルドを受け取る頻度は、「スロー（SLOW）」でよい。  
        - 「SLOW」の他にも「FAST」がありますが、違いを簡単に言うと「FAST」は開発者向けで、新機能や強化された機能を先行して使用でき、「SLOW」は一般向けで安定性を重視しているので（SLOW）が推奨です。好みに合わせて選択してください。    
https://www.pasoble.jp/windows/10/insider-program-update.html より
5. マシン再起動を求められるので、再起動する。
6.  Windowsの「設定 > 更新とセキュリティ > Windows Update」から更新プログラムをチェックし、「Windows 10、バージョン 2004」をインストールする。  
※インストールが完了するまでかなり時間がかかる場合もある。
7. マシンを再起動する。
8. 更新プログラムが他にもあれば、インストールする。

## WSL2 有効化
1. 「Windowsの機能の有効化または無効化」のウィンドウを開く。
2. 「Linux用Windowsサブシステム」にチェックを付け、「OK」をクリックする。
3. マシンを再起動する。

## WSL 2 Linux カーネルのインストール
1. 以下にアクセスする。    
  https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel
2. Linux カーネル更新プログラム パッケージをダウンロードし、インストールする。    
「このリンク」からダウンロード可能。

## Docker Desktop for Windows インストール

1. 以下のサイトを開く。    
  https://hub.docker.com/editions/community/docker-ce-desktop-windows/
2. 「Get Docker Desktop for Windows (Edge)」をクリックして、インストーラーをダウンロードする。
3. インストーラーを実行して、Docker Desktop for Windowsをインストールする。
4. Docker Desktop for Windows を起動する。

## 動作確認
- dockerのインストール状態を確認    
  
```
> wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop         Running         2
  docker-desktop-data    Running         2
```

- dockerコマンド実行

```
> docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:8e3114318a995a1ee497790535e7b88365222a21771ae7e53687ad76563e8e76
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
```

# その他
もともとVirtualBoxを使っていて、再度使いたい場合は、
「Windowsの機能の有効かまたは無効化」で、以下の二つのチェックを外し、マシン再起動する。

- Linux用Windowsサブシステム
- 仮想マシン プラットフォーム

# 参考サイト
- [Docker Desktop for Windows Home is here!](https://www.docker.com/blog/docker-desktop-for-windows-home-is-here/)
- [Windows Insider Quick Start](https://insider.windows.com/en-gb/getting-started/)
- [Windows10 Insider Program で最新バージョンにアップデートする方法](https://www.pasoble.jp/windows/10/insider-program-update.html)
- [Windows Insider Programへの参加に手こずったのでメモ](https://geek-memo.com/wip/)