Docker for Windowsでホストとコンテナのボリューム共有するときに必要なESETの設定


## ESETの初期設定だとボリューム共有に失敗してコンテナが起動しない
ESETをインストールしているPCでDocker for Windowsを動かしている環境のお話です。
上記のような環境で、docker-compose.ymlにボリューム共有設定を書いて、docker-compose upでコンテナを起動しようとすると、ファイアウォールでブロックされたよとエラーログが出力される。

```
PS C:\Users\hkr\Desktop\docker-test> docker-compose up
Creating master ... error

ERROR: for master  Cannot create container for service master: b'Drive sharing seems blocked by a firewall'

ERROR: for master  Cannot create container for service master: b'Drive sharing seems blocked by a firewall'
ERROR: Encountered errors while bringing up the project.

```
## ESETのファイアウォールに445番ポート宛の通信許可ルールを追加すればOK
ESETのファイウォールログを見ると445番ポート宛の通信がブロックされていた。
Dockerの公式サイトでも445番ポートと解放しろと記載あり。

## ESETのファイアウォールに許可ルールを追加

ESETのホーム画面の「設定」をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/d6e6d3c9-0af0-5675-685e-0e621067faba.png)
右下の「詳細設定」をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/61ff0442-ff8c-b6c7-65de-6d319a5c68a9.png)
「ファイアウォール」＞「詳細」＞ルールの「編集」をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/a1ec1a5c-3493-82bc-99c7-8e412a9461d8.png)
「追加」をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/7a84affe-bb78-4e81-f5db-eab9862791b2.png)
各タブに以下を設定
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/b97e3392-b554-598b-2bdc-a7aae201027f.png)

| 項目 | 設定値 |
|:-----------:|:------------:|
| 名前 | Docker Shared Drives用（445解放） |
| 有効 | 有効を選択 |
| 方向 | 内向き |
| アクション | 許可 |
| プロトコル | TCP |
| プロファイル | 任意のプロファイル |

![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/e500a4b6-64fa-f1e5-8711-7f64e04f9885.png)

| 項目 | 設定値 |
|:-----------:|:------------:|
| ポート | 445 |
| IP | 未指定 |
| ゾーン | ローカルアドレス |
| アプリケーション | 未指定 |
| サービス | 未指定 |

![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/0c696e73-d827-7dd1-c3c8-6dcbc0a19f0b.png)

| 項目 | 設定値 |
|:-----------:|:------------:|
| ポート | 未指定 |
| IP | 未指定 |
| ゾーン | 未指定 |


「すべてのルール(定義済み)」にチェックを入れる
（ここのチェックの存在にしばらく気付かずハマった。。。）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/c43b240b-e151-c60e-38dd-d2c2fcf1a953.png)

デフォルトで設定されているルールが表示されるので、さきほど追加したルールを選択し一番上に移動させる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/e6a7b8e5-22fb-37d0-4051-38e3bf4d22d0.png)

「OK」クリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/d08742c6-46d2-b45f-c7c8-b95f591fc439.png)


## 改めてコンテナを起動
ボリューム共有も起動もOK。

```
PS C:\Users\hkr\Desktop\docker-test> docker-compose up
Pulling master (jenkinsci/jenkins:2.142-slim)...
2.142-slim: Pulling from jenkinsci/jenkins
802b00ed6f79: Pull complete
c93b65a61a80: Pull complete
a9885ada077a: Pull complete
a89352ec9377: Pull complete
796c914eaedf: Pull complete
69436e8df502: Pull complete

～以下略～
```

## （余談）以下はESETのログ出力設定の変更方法
ESETのブロックログを確認する際、ログの出力設定を変更する必要があったので忘れないようにメモ。
### ESETのログ出力設定を変更
デフォルトではファイアウォールのブロックログは記録されないようなので、ログの出力設定を変更する。

ESETのホーム画面を開いて「設定」をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/d6e6d3c9-0af0-5675-685e-0e621067faba.png)
右下の「詳細設定」をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/61ff0442-ff8c-b6c7-65de-6d319a5c68a9.png)
「ツール」＞「ログファイル」＞「診断」を選択　（細かくログがでるのが「診断」）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/747145bc-4a27-86a6-0af7-9545d3099598.png)

### ブロックログが出力されるようになっていることを確認
ESETのホーム画面の「ツール」をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/b529bc08-f345-6c9f-d153-3d84c54b4a8c.png)
右下の「その他のツール」をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/dd146b39-976f-176f-3fa8-d37aaf6f444d.png)
「ログファイル」をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/f2481745-2fa4-2cc6-a544-dc9adf3a146c.png)
「ネットワーク保護」をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/5db71f9b-3019-29f7-8fbf-89b357e76ac9.png)
ブロックされているログから、445宛の通信がブロックされていることを確認
![image.png](https://qiita-image-store.s3.amazonaws.com/0/264586/4cbf01e7-48ea-f5dd-4433-8e9e113426ff.png)