windowsにWSL2+Docker環境を構築する手順

# はじめに
[Docker Desktopの有料化(2022年2月～)](https://www.docker.com/blog/updating-product-subscriptions/)に伴い、windowsではDockerの運用に工夫が必要になりました。
Docker Desktopを利用せずにDockerを運用する方法として、windowsにWSL2+Docker環境を構築することが挙げられます。

windows10にWSL2+Docker環境を構築してみたので、本記事では備忘録として構築手順を残しておきます。

# 環境構築手順

## 1. WSL2のインストール/セットアップ

:::note warn
自分のPCは`wsl --install`がサポートされていなかったため、古いバージョンの手順となります。
windows10の新しいバージョンやWindows11ではもう少し簡単な手順で進められます。

https://docs.microsoft.com/ja-jp/windows/wsl/install#step-4---download-the-linux-kernel-update-package

:::

### Windows Subsubsystem for Linux を有効化する
管理者権限でPower Shellを開いて、以下コマンドを実行する。
![powershell.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1777029/c7345ec2-fc02-1e66-76a7-e5599f889b17.png)

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

### 仮想マシンの機能を有効にする
管理者権限でPower Shellを開いて、以下コマンドを実行する。
```
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
```

### Linux カーネル更新プログラム パッケージをダウンロードする

最新のパッケージをダウンロードします。
[x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)

### WSLの既定のバージョンを 2 に設定する
管理者権限でPower Shellを開いて、以下コマンドを実行する。

```
wsl --set-default-version 2
```


## 2. Ubuntuのインストール/セットアップ

### Microsoft Store からUbuntu-20.04 (Linux ディストリビューション)をインストールする
![ubuntu.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1777029/57607f65-f5e3-7dde-b552-bf43e9d07fa7.jpeg)

### Ubuntu 20.04 を初回起動してユーザー名とパスワードを設定する
![ubuntu_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1777029/6806d6b4-2f31-aca4-409e-bfe7ea1cfd3f.png)
![ubuntu_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1777029/bf4fbf18-d4fe-8f00-f3fe-0a4a4901e99f.png)

:::note warn
設定したパスワードは、sudoコマンドで利用するので必ず控えておいてください
:::

### Ubuntu 20.04 をアップデートする

```
$ sudo apt update
$ sudo apt upgrade -y
```

### Docker導入のために必要なパッケージをインストールする

```
$ sudo apt install curl -y
$ sudo apt install apt-transport-https -y
```

## 3. Docker Engineのインストール
### Docker 公式 GPG 鍵を追加
```
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
```

### Docker 安定版のレポジトリを追加

```
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```

### レポジトリをアップデートし、Docker Engine をインストール

```
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io -y
```

### docker-compose もインストール

```
$ sudo apt install docker-compose -y
```

### Docker デーモンを起動

```
$ sudo service docker start
```

環境構築手順としては以上です。

# [付録]WSLを利用するにあたっての便利ツール
WSLを利用することになって、**Windouws Terminal**を使ってみましたが非常に便利でした。
Windows Terminal は Microsoft から 2020 年にリリースされた新しいターミナルソフトになります。
各種コマンドラインツール（コマンドプロンプト、Powershell、WSL等）やシェルをタブ化して操作できます。
![terminal.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1777029/b7fe2578-b548-5d67-9d16-cd472217b596.jpeg)

Microsoft Store からインストールだけなので、簡単に導入できます。
![microstore.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1777029/d1a28735-ff25-e4fb-2582-58ac276d2c2e.jpeg)

# おわりに
windows10にWSL2+Docker環境を構築する手順をまとめてみました。
WSLは便利なので、いろいろと活用していきたいと思います。


# 参考
https://docs.microsoft.com/ja-jp/windows/wsl/install-manual

https://docs.microsoft.com/ja-jp/windows/wsl/install

https://zenn.dev/sprout2000/articles/95b125e3359694