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宛の通信がブロックされていることを確認