Docker for WindowsでShared Drivesを有効化しようとしたとき、Niftyの常時安全セキュリティ24(カスペルスキーのエンジン)のファイヤーウォール設定が邪魔して設定できなかったのを対処したときのメモ。
Shared Drives設定した時のエラーメッセージ
Docker for Windowsインストール後、ホスト側のディスクを共有しようと、Shared Drives設定を行うと、「Firewall detected」って怒られ、設定できない。
Kaspersky Firewall設定方法
上記ドキュメントでは、ポート445をオープンするように記載があるが、カスペルスキーのパケットルールの設定画面で設定したけど、やり方がマズいのかできなかった。
結局以下の手順でクリアした。
-
Hyper-V Virtual Ethernet Adapterの「10.0.75.1/24 (vEthernet(DockerNAT))」のネットワーク種別が「パブリックネットワーク」となっているが、ここを「許可するネットワーク」に変更する
-
10.0.75.1/24 (vEthernet(DockerNAT))をダブルクリックすると編集画面が開くので「パブリックネットワーク」から「許可するネットワーク」に変更して保存する
以上でファイヤーウォールの設定は完了!
尚、DockerのShared Drives設定で以下のようなファイルシステム認証画面が出た場合は、ホストPCのユーザ名(*****@outlook.com)とパスワードを入力して認証すればOK!
マウントできるか試してみる
「-v」オプションを使って、ホストの「E:\temp」を「/data」にマウントする。
- マウント&コンテナ実行
PS C:\Users\spiderx> dir e:
ディレクトリ: E:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2017/05/01 10:23 temp
PS C:\Users\spiderx> docker run -v E:/temp:/data -t -i ubuntu bash
- 読み込みテスト
Windows10で書き込んだテキストファイルが読めるか確認
root@691eb073c690:/# ls /data
test01.txt
root@691eb073c690:/# cat /data/test01.txt
This is test.
root@691eb073c690:/#
- 書き込みテスト
ファイルを作成&書き込めるか確認
root@691eb073c690:/# echo "WRITE WRITE" >> /data/test02.txt
root@691eb073c690:/# ls /data
test01.txt test02.txt
root@691eb073c690:/# ls -al /data
total 5
drwxr-xr-x 2 root root 0 May 2 06:10 .
drwxr-xr-x 1 root root 4096 May 2 06:09 ..
-rwxr-xr-x 1 root root 19 May 2 05:57 test01.txt
-rwxr-xr-x 1 root root 12 May 2 06:10 test02.txt
root@691eb073c690:/#
以上