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のホーム画面の「設定」をクリック

右下の「詳細設定」をクリック

「ファイアウォール」>「詳細」>ルールの「編集」をクリック

「追加」をクリック

各タブに以下を設定

| 項目 | 設定値 |
|---|---|
| 名前 | Docker Shared Drives用(445解放) |
| 有効 | 有効を選択 |
| 方向 | 内向き |
| アクション | 許可 |
| プロトコル | TCP |
| プロファイル | 任意のプロファイル |
| 項目 | 設定値 |
|---|---|
| ポート | 445 |
| IP | 未指定 |
| ゾーン | ローカルアドレス |
| アプリケーション | 未指定 |
| サービス | 未指定 |
| 項目 | 設定値 |
|---|---|
| ポート | 未指定 |
| IP | 未指定 |
| ゾーン | 未指定 |
「すべてのルール(定義済み)」にチェックを入れる
(ここのチェックの存在にしばらく気付かずハマった。。。)

デフォルトで設定されているルールが表示されるので、さきほど追加したルールを選択し一番上に移動させる。

改めてコンテナを起動
ボリューム共有も起動も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のホーム画面を開いて「設定」をクリック

右下の「詳細設定」をクリック

「ツール」>「ログファイル」>「診断」を選択 (細かくログがでるのが「診断」)

ブロックログが出力されるようになっていることを確認
ESETのホーム画面の「ツール」をクリック

右下の「その他のツール」をクリック

「ログファイル」をクリック

「ネットワーク保護」をクリック

ブロックされているログから、445宛の通信がブロックされていることを確認



