Windows10 Home で Docker Desktop For Windowsを動かしたメモ

## 概要
Docker Desktop For Windowsを動かしたメモ

## 今回書かないこと

* Virtual Boxは既に動かせる状態になっていたので、今回の対応には含めない。
* パッケージ管理としてchocolateyはインストール済
* Docker-toolboxを既にインストールしていた場合、削除しておく。（残していたらうまく動かなかった）

## Windows10 Home で Docker Desktop For Windowsを使うための条件

* Virtual Box(or Hyper V)が使える状態であること
* Windowsのビルドがversion 2004以上であること
* WSL2が使える状態となっていること

## Windowsのビルドバージョンアップ

> WSL 2 は、Windows 10、バージョン 2004、ビルド 19041 以上でのみ使用できます。 Windows のバージョンを確認するには Windows ロゴ キー + R キーを押します。次に「winver」と入力し、 [OK] を選択します (または、Windows コマンド プロンプトで ver コマンドを入力します)。 最新の Windows バージョンに更新する必要がある場合があります。 19041 より前のビルドでは、WSL はまったくサポートされていません。

うちはこれより古かったので、まずアップデートする必要があった。
[最新版へのアップデートツールのダウンロード](https://www.microsoft.com/ja-jp/software-download/windows10)からインストーラをダウンロードして実行。2時間弱かかった。

バージョンアップ完了。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99876/005efd05-f455-7073-6104-ce941e998757.png)

## WSL2の導入

WSL1の導入 → WSL2へのアップデートと順番を踏む必要がある。
[Windows 10 用 Windows Subsystem for Linux のインストール ガイド](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10)を参考に行う。

`Windows ロゴ キー + Xキー`でコンテキストメニューを開き、`Aキー`で「PowerShell（管理者として実行）」を選択。
ガイドに従い以下のコマンドを実行する。

### WSL1の導入

`dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart`

* Windowsの再起動を行う

### WSL2の導入

`dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart`

* Windowsの再起動を行う

### WSL2を規定のバージョンにする

`wsl --set-default-version 2`

### WSL2でインストールされることを確認

[選択した Linux ディストリビューションをインストールする](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10#install-your-linux-distribution-of-choice)を参考に、[Ubuntu 18.04 LTS](https://www.microsoft.com/ja-jp/p/ubuntu-1804-lts/9n9tngvndl3q?rtc=1&activetab=pivot:overviewtab)をインストール。今回は確認したいだけなので、まだ不安定なUbuntu 20.04 LTSは避けた。

[新しいディストリビューションを設定する](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10#set-up-a-new-distribution)にあるとおり、Ubuntuのusernameとpasswordを設定。

PowerShellで `wsl -l -v`を入力して、バージョン2でインストールされていることを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99876/d4a0af3d-3e62-a1a9-1b72-bcb47833393b.png)

## Docker For Windowsの導入

### インストール
[Get started with Docker for Windows](https://docs.docker.com/docker-for-windows/)を確認。
今回は[chocolatey - docker-desktop](https://chocolatey.org/packages/docker-desktop)でインストールした。
Powershellで以下を入力。

`choco install docker-desktop --pre -y`

* Windowsの再起動を行う

### Docker Desktopの起動

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99876/de4b70f2-51c1-0cac-b450-371c625b10ad.png)
起動するとチュートリアルが行われるので、それに従う。

### Docker Composeで確認。

docker-compose.yml は既に作ってある前提。
`docker-compose build`を行い、コンテナが作成できることを確認。
ここでエラーとなる場合、Windowsの再起動を推奨。
一度途中でエラーとなり、2回目でコンテナのビルドに成功した。若干不安定なのだろうか。

`docker-compose up`で起動されることを確認。



## 参考

[Docker Desktop for Windows （参考訳）](https://qiita.com/zembutsu/items/0a66e9a3fb078e1c90ae)
[Windows 10 用 Windows Subsystem for Linux のインストール ガイド](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10)
[WSL 2 と WSL 1 の比較](https://docs.microsoft.com/ja-jp/windows/wsl/compare-versions)
[Win10 - OSビルド確認手順](https://laboradian.com/windows10-windows-update/#Windows_10_Windows_Update)
[最新版へのアップデートツールのダウンロード](https://www.microsoft.com/ja-jp/software-download/windows10)
[chocolatey - docker-desktop](https://chocolatey.org/packages/docker-desktop)
https://qiita.com/zembutsu/items/0a66e9a3fb078e1c90ae#window-home-%E3%81%AB-docker-desktop-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB