Windows10でDockerを無料で構築する

# ニュースと記事
## ■Home版WindowsでもDocker開発環境を手軽に構築可能
https://forest.watch.impress.co.jp/docs/news/1239275.html
「WSL 2」はアーキテクチャーが一新され、LinuxカーネルをまるごとOSに内蔵し、軽量仮想マシンに処理を任せる方式に改められた。これによりソフトウェア互換性が向上し、「WSL 2」でも「Docker」がそのまま動作する。

## ■Windows10 2004 アップデートの概要
https://www.pasoble.jp/windows/10/oogata-update-2004.html
開発者向けのWSL 2の強化
WSL 2（仮想マシン）のメモリは、利用用途により増加され、メモリが不要になったときに解放されることがありませんでした。2004のWSL 2では「Linux 仮想マシン」でメモリの使用状況が改善される。
また、ファイルエクスプローラーから Linux のルートディレクトリーに、直接アクセスできるようになる。

# どうなるのか
- みなさんが普段使用しているPC「Windows 10 Home」でDockerが使用できるようになります。
- Dockerデーモンの起動が高速化します。記事より
https://japan.zdnet.com/article/35138834/


**自分の場合すでにDockerを構築しているのでHyper-VからWSL2に移行する作業になります。**
**わざわざ1万くらい払ってHome版からPro版にしたのに。。。**

# 手順1：Windows10 2004 を手動アップデート
手順1：画面左下の検索欄から「Windows Insider Program」と検索して
Windows Insider Programの設定画面に移動して「開始をする」
※Insiderの設定は[スロー]か[ファスト]を選択
手順2：Windows Updateを実施する

※バージョン確認方法
手順1：画面左下「スタート」をクリック
手順2：「設定」をクリック
手順3：「システム」をクリック
手順4：左下「バージョン情報」をクリック
![screenshot.26.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/a6c64937-0735-1719-6fd2-41abbc228a9a.jpeg)

# 手順2：Microsoft Store からUbuntuをインストール
![screenshot.27.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/602d76b7-9a71-ca18-3c19-6b72baa01606.jpeg)

# 手順3：WSL2の導入
参考：https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-install

## Linux用Windowsサブシステムと仮想マシンプラットフォームの有効化
画面左下の検索欄から「Windows の機能の有効化または無効化」を検索
Linux用Windowsサブシステムと仮想マシンプラットフォームにチェックを入れて再起動を行う
![screenshot.29.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/82ffae52-231b-1c8b-4d80-39c7aecef61c.jpeg)
![screenshot.30.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/ddad54a6-c584-21ac-26bd-d9601a973f65.jpeg)

## Ubuntuの設定
Ubuntuを起動してユーザー名とパスワードを設定する
![screenshot.31.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/8aef66fd-3f8d-0242-cffa-fa62a15b2a11.jpeg)

## WSL2によってサポートされるようにディストリビューションを設定する
コマンドプロンプトを起動
`wsl -l`で使用しているディストリビューション名を確認
`wsl --set-version <Distro> 2`　UbuntuをWSL2用に変換　※\<Distro\>の部分にディストリビューション名を入力
` wsl --set-default-version 2`　WSL2を標準設定とする

「カーネル コンポーネントの更新が必要です」と表示された場合は
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel
でカーネルの更新を行う
「このリンクをクリックして、x64 マシン用の最新の WSL2 Linux カーネル更新プログラム パッケージをダウンロードしてください」
![screenshot.35.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/ff0ac829-953a-50a5-408f-a8a0b790b669.jpeg)
`wsl -l -v`を実行して
 [version] 列に "2" と表示されていればWSL 2が使用可能
![screenshot.40.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/6218e96f-f087-701e-6fd0-7fb6cccd6932.jpeg)


# 手順4：Dockerの設定変更
Dockerをインストールしていない場合は公式サイトからインストールしよう
https://hub.docker.com/editions/community/docker-ce-desktop-windows/

Docker setting画面からチェックを入れる
【General】
`Enable the experimental WSL 2 based engine`
試験的なWSL 2ベースのエンジンを有効にする
![screenshot.37.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/05bbedef-8d45-578a-f7e4-f5a39ea95814.jpeg)

【Resources】WSL INTEGRETION
`Ubuntu`
DockerにアクセスするWSL2ディストリビューションを設定します
![screenshot.33.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/eb6737b1-4445-fa46-6c28-15a7b7c9d47b.jpeg)

Restartすると下記のポップが表示されます
![screenshot.34.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/5c3cd0de-819f-4ef9-21b5-9dd289a67f85.jpeg)
DockerはWSLがインストールされていることを認識し、WSL統合を有効にするように求めます。有効にしてください。


# 動作確認
コマンドプロンプトでコンテナが動くか確認
` docker run hello-world`
![screenshot.36.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/68adb6d7-76ac-6ef1-1933-517b2ea750ba.jpeg)
`docker ps -a`でコンテナのIDを確認
`wsl -d Ubuntu`でWSL2に切り替えて`docker ps -a`でコンテナのIDを確認
WindowsとUbuntuでコンテナが共有されていることが確認出来れば完了＼(^o^)／
![screenshot.39.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619433/58155d6b-1092-498f-01e7-9720fcfb6d0c.jpeg)

参考サイト
https://dev.to/birdsea/windows-subsystem-for-linux-2-docker-for-wsl2-3dpm