WindowsにDocker Desktopをインストールする

# WindowsにDocker Desktopをインストールする

とある業務の中でKubernetesやdockerコンテナに触れる機会があり、もう少し理解を深めたいと思い、気軽にいじれる環境を構築しようと思いました。

手持ちのPCはすべてWindowsだったためDocker Desktop for Windowsをインストールしてみることに。

本記事ではDocker Desktop for Windowsのインストール手順をご紹介します。

- 環境
- 準備
- Docker Desktop for Windowsのインストール
- 「WLS 2 installation is incomplate.」が表示される場合
- 動作確認


## 環境

- Windows 10 Home　バージョン 2004　システムの種類 64ビット　RAM 12.0GB
- Docker Desktop 3.3.3
- Git for Windows 2.31.1


## 準備

- システム要件の確認

システム要件の確認は[こちら](https://docs.docker.jp/docker-for-windows/install-windows-home.html)

- Installerのダウンロード

「Docker Desktop Installer.exe」のダウンロードは[こちら](https://hub.docker.com/editions/community/docker-ce-desktop-windows/)


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

Docker Desktop Installer.exeを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1215301/bb8b18cc-a100-8e9e-ac79-14c05a2022b9.png)

しばらくすると下記の画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1215301/cca95f32-5ec5-f99e-c315-85d7759b7fc6.png)

チェックボックスはデフォルトのままで「OK」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1215301/f0a7a0ac-6171-4f22-9926-ce0d7225fbeb.png)

しばらく待ち下記の画面が表示されればDocker Desktopのインストールは完了になります。
「Close and restart」を押下してWindowsを再起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1215301/c8c17085-d068-7175-c90f-0207f029edee.png)


## 「WLS 2 installation is incomplate.」が表示される場合

Windows再起動後に「WLS 2 installation is incomplate.」というダイアログが表示されることがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1215301/c51f7165-278f-8752-7584-c881dc006cd2.png)

WLS 2で使うカーネルコンポーネントをアップデートしろとのことです。
ダイアログに記載されているURLへアクセスし、「__手順4 - Linux カーネル更新プログラム パッケージをダウンロードする__」を実施します。

[ここ](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)からLinux カーネル更新プログラム パッケージ（msiファイル）をダウンロードし、インストールすれば完了です。


インストール後にDocker Desktopを起動したところ正常に起動しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1215301/55940d1b-9107-bbe7-3c01-12a0ce4c12f8.png)

これでインストール作業は完了です。


## 動作確認

### バージョンを確認してみる

無事インストールできたので、バージョンを確認してみます。
ちなみに下記のコマンドはGit for Windowsをインストールしgit bashから実行しています。

```
$ docker version
Client:
 Cloud integration: 1.0.14
 Version:           20.10.6
 API version:       1.41
 Go version:        go1.16.3
 Git commit:        370c289
 Built:             Fri Apr  9 22:49:36 2021
 OS/Arch:           windows/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.6
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       8728dd2
  Built:            Fri Apr  9 22:44:56 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.4
  GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc:
  Version:          1.0.0-rc93
  GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

```

docker-composeのバージョンも確認してみます。

```
$ docker-compose version
docker-compose version 1.29.1, build c34c88b2
docker-py version: 5.0.0
CPython version: 3.9.0
OpenSSL version: OpenSSL 1.1.1g  21 Apr 2020

```



### Pullしてみる

Docker Hubには多くの構築済みのImageがあります。

試しに少し触れたことのあるsplunk universalfowarderのImageをpullしてみます。

```
$ docker pull splunk/universalforwarder
Using default tag: latest
latest: Pulling from splunk/universalforwarder
a591faa84ab0: Pulling fs layer
76b9354adec6: Pulling fs layer
0971e765407f: Pulling fs layer
8b81ac23d27c: Pulling fs layer
6a5829ec3dc1: Pulling fs layer
7abe4bed8c5b: Pulling fs layer
77dff1b7b78a: Pulling fs layer
a682e598e9bf: Pulling fs layer
35af043f188e: Pulling fs layer
2ffd956222db: Pulling fs layer
a682e598e9bf: Waiting
8b81ac23d27c: Waiting
35af043f188e: Waiting
6a5829ec3dc1: Waiting
2ffd956222db: Waiting
77dff1b7b78a: Waiting
7abe4bed8c5b: Waiting
76b9354adec6: Download complete
0971e765407f: Verifying Checksum
0971e765407f: Download complete
6a5829ec3dc1: Verifying Checksum
6a5829ec3dc1: Download complete
7abe4bed8c5b: Download complete
a591faa84ab0: Download complete
a682e598e9bf: Verifying Checksum
a682e598e9bf: Download complete
35af043f188e: Download complete
77dff1b7b78a: Verifying Checksum
77dff1b7b78a: Download complete
2ffd956222db: Verifying Checksum
2ffd956222db: Download complete
8b81ac23d27c: Verifying Checksum
8b81ac23d27c: Download complete
a591faa84ab0: Pull complete
76b9354adec6: Pull complete
0971e765407f: Pull complete
8b81ac23d27c: Pull complete
6a5829ec3dc1: Pull complete
7abe4bed8c5b: Pull complete
77dff1b7b78a: Pull complete
a682e598e9bf: Pull complete
35af043f188e: Pull complete
2ffd956222db: Pull complete
Digest: sha256:fe48fd91a03dc7a615443decac5f2a5c4f666e733d763f35d32c36b8f2e2b3b7
Status: Downloaded newer image for splunk/universalforwarder:latest
docker.io/splunk/universalforwarder:latest

```


docker pull実行後にDocker Desktopを確認したところImagesに「splunk/universalforwarder」が表示されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1215301/c6c86acc-72b0-5eb4-c637-49672253fee1.png)


## おわりに

Windows 10にDockerコンテナをいじれる環境を構築するという目的は達成しました。

今後はdockerfileの作成や、Kubernetesとの連携などの検証も行っていきたいと思います。