Docker for Windowsをインストールしてみた (カスペルスキーのファイアウォール機能のせいで動かなかったので設定をして動かした)

Docker for Windowsをインストールしてみた話。

WindowsのPCで、Pythonのディープラーニングの環境を作るのにDockerを使えば楽というので試してみている。(機械学習名古屋勉強会講師のantimon2さんがDockerイメージを公開しているので、それを使ってみる)

今まではWindowsでDockerを使う場合、Docker toolboxというのを使ってVirtualBoxという仮想環境と組み合わせて動かさないといけなかった。
最新版のDocker for Windowsは、Hyper-Vで動くようになっている。ただしHyper-V for Windows10のみサポートなので、Windows10のPro版以上でないと動かせない。
なので、GPUが載ったゲーミングノートPCのOSをWindows10 Homeから、例の激安なWindows10 Proにアップグレードした。

Docker for Windowsをインストールしてみる。公式サイトからインストーラーをダウンロードして動かした。

Hyper-Vを前もって有効にしておかなかったので、DockerのインストーラーがHyper-Vをenableにするか聞いてくる。

再起動後にHyper-Vが有効になり、Dockerが起動する。
特にDockerの起動画面とかウィンドウが出てこないが、タスクトレイのインジケーターにDockerのアイコンが表示される。

タスクトレイのDockerアイコンを右クリックして設定を開くと、動作状態を確認したり、設定を変更したり、停止やリスタートができる。

Dockerを実際に使う場合、コマンドラインのdockerコマンドを用いる。cmd.exeから起動してみた。

dockerコマンドが確認できたので、さっそく実際にDockerでpython環境を動かしてみるのを試してみた。
しかし、「Firewall detected」というエラーのダイアログが表示されて、うまく動かない。

ドキュメントにはファイアウォールのport 445を開ける設定をすればいいようなことが書いてある。

自分の場合、ウイルス対策ソフトのカスペルスキーを入れているので、ファイアウォール機能はWindows Firewallを使わずに、カスペルスキーのファイアウォール機能を使っている。

カスペルスキーのファイアウォール機能の設定を変更してみる。
ファイアウォール機能の設定画面はこのようになっている。

「ネットワーク」、「アプリケーションルールの設定」、「パケットルールの設定」という3つのサブの設定メニューがあるようだ。
順に開いて試してみた。

最初に「ネットワーク」を開いてみたのだが、よくわからなくて関係なさそうだと思ったので無視して飛ばした。(後述するが、ここで設定をするのが正解だった)

次に「アプリケーションルールの設定」を試してみたが、うまくいかなかった。

アプリケーションのdocker.exeを探して、通信を許可するか禁止するかを設定できるので、許可に設定したのだが、何かうまくいっていないみたいでdockerはさっきのエラーを表示してしまう。

次に、「パケットルールの設定」を試してみたが、これもうまくいかなかった。
よくあるルーターのNAT機能のような設定と同じで、プロトコル毎にポート指定してそのポートを開放するか禁止するか、あるいは通信先を限定して許可するとかの設定ができる。

このようにポート445をHyper-Vの仮想マシンに対して許可したつもりなのだが、うまくいっていないみたいで、やはりdockerでエラーが出る。

再度「ネットワーク」を開いて仮想マシンのネットワークインターフェース自体に許可を設定するのを試してみた。(ここに許可の設定があるのになかなか気がつかなかったので、だいぶ試行錯誤してしまった)

接続する設定にしたら、うまくいった。
dockerコマンドでサーバーに環境をダウンロードしにいくお馴染みの表示が出てきて、無事にダウンロードした環境を起動することができた。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

− 7 = 3