今更Docker for Windowsをインストールしたのでその備忘録

## はじめに

以前WindowsにDockerを入れようとしてうまくいかずにVagrantで頑張っていたんですが、つい先日Docker for Windowsを再度入れてみたらすんなり出来たのでその手順を備忘録として記します。

この記事を書くために一度アンインストールしているので、もしかしたら設定が残っていて抜けている手順等あるかもしれません。もしあればコメント等で教えていただけると幸いです。

Dockerには色々あるみたいですが、今回インストールするのは **Docker Community Edition for Windows** です。
Dockerと一緒にDocker Composeもインストールしてくれます。

### 環境
* Windows 10 Pro 64bit

## ダウンロード

インストーラーのダウンロードは下記サイトから行えます。
https://docs.docker.com/docker-for-windows/install/

……が、ログインが必要なDocker Storeへのリンクしか表示されていません(2018年9月16日現在)。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/1f422815-7a60-e215-c702-8a59c26e226c.png)

~~この問題について、PRが上がっていますが2018年9月16日現在はマージされていません。~~
https://github.com/docker/docker.github.io/pull/7242
**2018年9月27日追記**：マージされたようです。今のところサイト上には適用されていない？ようですが、追って適用されるでしょう。それまでは後述のリンクからログインせずにダウンロードしていただければ良いかと思います。

Docker IDがなくてもDocker自体は使えるので、アカウントを作りたくない方は下記URLからダウンロードしましょう。
https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe

## インストール

ダウンロードが完了した **Docker for Windows Installer.exe** を起動します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/c7fb5e15-69c3-3e2f-e4f0-c236fb41f3b1.png)
パッケージのダウンロードが完了したら、下のような画面になります。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/35388bb9-0bb5-7d36-40d6-3934f8df5515.png)
**Add shortcut to Desktop** はデスクトップにショートカットを作るかどうかです。
**Use Windows containers instead of Linux containers** はWindowsコンテナを利用するかです(インストール後に変更可能)。
自分の環境に合わせてチェックし、 **Ok** で次へ。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/4c659849-4cb0-ded6-5520-695d26745484.png)
**Docker for Windows 18.06.1-ce-win73** がインストールされているみたいです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/ac16edbd-2a61-b167-07e9-e6b0e6b81932.png)
インストールが完了したら、 **Close and log out** を押してサインアウトします。

以前インストールしたことがあり、**docker-users**グループに実行ユーザーが既に追加されている場合は下のように表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/462689a8-7868-b0c1-0ec2-60ba855e582f.png)

### 確認

```powershell
PS > docker -v
Docker version 18.06.1-ce, build e68fc7a
```

```powershell
PS > docker-compose -v
docker-compose version 1.22.0, build f46880fe
```

## 起動

デスクトップに追加されたショートカットや、プログラム一覧から起動します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/1fd581f2-e55d-fece-18e6-eb04644a4b51.png)

### Docker for Windows - Access denied と表示される場合
![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/bf9f8774-9ad1-3eec-d2ec-0914fdace6d9.png)

別のPOSTに分けましたのでこちらを参照してください。
[Docker for Windowsで起動時に「Docker for Windows - Access denied」と表示される場合の対処法](https://qiita.com/toro_ponz/items/d75706a3039f00ba1205)

### 起動時

起動時にデスクトップ通知があり、タスクトレイに表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/2ad92d4e-93c7-ea4c-7706-23646e1d95f2.png)  ![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/180ab9c9-99a5-46a7-afa8-6bcf29a16c56.png)

#### Hyper-Vが無効になっている場合

![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/c402e665-0b63-18f3-411b-aa64e2f35cb4.png)
Hyber-Vが無効になっている場合はこのようなダイアログが表示されます。
**Ok** を押すと、自動でHyper-Vが有効化され再起動がかかりますので、他のウィンドウを閉じてから**Ok**を押しましょう。

**2018/09/25 追記**
---------追記ここから---------
Hyper-Vの要件には、

* Windows 8 以降の 64 ビット版 Windows Professional、Enterprise、および Education
* Windows Professional、Enterprise、および Education
* 仮想化テクノロジ(Intel VT/AMD V)の有効化
* 最小4GBのメモリ

などがありますので、必要に応じて適宜アップグレード・有効化してHyper-Vを使える状態にしましょう。
詳しくは以下を参照してください。
[Windows 10 の Hyper-V の概要](https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/about/)
[Windows 10 Hyper-V のシステム要件](https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/reference/hyper-v-requirements)
[Windows 10 上に Hyper-V をインストールする](https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v)
---------追記ここまで---------

### 起動完了

初回起動時にはWelcomeウィンドウが表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/83982f70-9279-0b0f-a455-62e30f97025f.png)


## 共有設定
ホストのディレクトリをコンテナにマウントする際に共有の設定、許可をしていないといけないため、設定します。

タスクトレイの**Docker for Windows**を右クリックして、**Settings**をクリック。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/57b09c4e-b3e6-d6a5-e082-1c6845de4905.png)

Settingsウィンドウが表示されるので、**Shared Drives**をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/2dc7b0fb-2c53-06c6-5d4c-05c93a69dd53.png)

共有を許可するドライブにチェックを入れて、**Apply**を押します。
左下が再び**Docker is running**となれば完了です。

### Firewall detected と表示された場合
![image.png](https://qiita-image-store.s3.amazonaws.com/0/262177/068f36dd-ff7c-5185-8afd-2e1e761d47e6.png)

ファイアウォールによって、Dockerとの通信が遮断されているようです。
お使いのセキュリティソフト等でアクセスを許可する必要があります。

ESETの場合は別のPOSTに分けましたのでこちらを参照してください。
[Docker for Windowsのドライブ共有時に必要なESETでの設定](https://qiita.com/toro_ponz/items/167250639211f264b43c)

## 良いDocker for Windowsライフを！

Windowsでの開発環境が益々良くなっていくことを願っております。