Docker for Windowsがドライブを共有できるようにするWindowsファイアウォールの設定


139

Windowsファイアウォールが、Docker for WindowsがWindows 10マシンでC:を共有できるようにする私の試みをブロックしています。

Windowsファイアウォールがオフの場合でも問題なく機能します。その時私は得る

ファイアウォールがWindowsとコンテナ間のファイル共有をブロックしています。詳細については、ドキュメントを参照してください。

ドキュメントは言う

他のネットワークでポート445を開く必要はありません。デフォルトでは、10.0.75.2(仮想マシン)から10.0.75.1ポート445(Windowsホスト)への接続を許可します。

私はそれを行う方法を見つけようとして「グーグルアウト」しています-誰かがアドバイスできますか?


20
Cisco AnyConnect VPNはこれをブロックしていましたが、VPNを終了した後、機能しました。
クリスウルフ

1
Ciscoでブロックされていますが、VPN上にいる必要があり、Dockerも共有している必要があります...何かアイデアはありますか?
Nicolas Irisarri

1
私はノートンファイアウォールのためにこれを踏襲し、それは完全に働いたstackoverflow.com/questions/45159006/...
ロビンSannerに

この質問の答えポストの下を参照してくださいsuperuser.com/questions/1470821/...を
Aravind S

1
@NicolasIrisarri:同じ問題を解決しました(両方を同時に使用する必要があります)。解決策は、AnyConnectで保護されているサブネットとは異なるサブネットを使用することです。以下の私の回答を参照してください:stackoverflow.com/a/58406873/9064636
Averell

回答:


151

Cドライブを実際に共有する必要はありませんが、Hyper-V仮想ネットワークカードのファイルと印刷の共有サービスを再インストールするだけです(または、チェックを外して[OK]をクリックしてからチェックすることもできます)。 この記事を参照してください。

また、ネットワークプロファイルに制限がある場合(つまりパブリック)、上記を実行する前に、このPowerShellコマンドを使用して、「vEthernet(DockerNAT)」カードのデフォルトの「不明なネットワーク」をプライベートに変更することを検討してください。

Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private

4
上記のPowershellコマンドを実行した後、Docker for Windowsを閉じて再起動する必要がありました。実行Get-NetConnectionProfileして、DockerNATネットワークがPrivateカテゴリ内にあることを確認できます
seangwright

1
blog.olandese.nl/2017/05/03/…へのリンクは私の問題を解決しました。どうもありがとう!
Andrie

1
これらはどれも私にとってはうまくいか
Andrei

3
アンインストールできません。エラーが表示されます0x80071779。無効にしようとしました->有効にします。ファイアウォールも無効になっています...私もプライベートに設定しようとしましたが、まだ機能しません、何かアイデアはありますか?
BrunoLM

2
ファイルと印刷の共有サービスを削除する:Disable-NetAdapterBinding -Name "vEthernet (DockerNAT)" -ComponentID ms_server
Marcel DB

73

OK、同じ問題で実行した後、私は解決策を見つけました。

これは私がやったことです:


ステップ1:ESETを開きます。次に、セットアップをクリックします

設定をクリック

ステップ2:ネットワーク保護をクリックします

ネットワーク保護をクリックします

ステップ3:トラブルシューティングウィザードをクリックします

トラブルシューティングウィザードをクリックします

ステップ4:通信を見つける10.0.75.2(デフォルトのdocker IP設定)docker設定 内で定義されているIP範囲を確認するだけです。次に、その範囲にあるIPを探します。

接続を見つける

ステップ5:[ ブロックを解除 ]ボタンをクリックすると、この画面が表示されます。

ブロック解除をクリックします

これで問題は解決しました。

次に、ルールに移動して、追加されたルールを確認できます。


PS:これは私の最初の投稿です。間違った手順があれば申し訳ありません。


この投稿は私にとって非常に役に立ちました。ドキュメントで説明されているようなルールを追加すると、IPアドレスが異なる場所で言及されるからです。ベジに行きました!
DelphiLynx 2017年

11
そこにいるすべてのESETユーザーにとって、これが解決策です、ありがとう!
cudacoder

2
Franche Van Den Bergによるすばらしい貢献、ありがとう。これは確かにESETユーザー向けのソリューションであり、非常にエレガントなソリューションです。
Vacilando 2018

ESETの場合は、DockerネットワークがTrusted Zoneにあることを確認してください
WhiteKnight

この正確な解決策は完璧に機能しました。ありがとうございました!
ハリド

63

この解決策だけが私を助けます:

  • Hyper-Vマネージャー->仮想スイッチマネージャー-> DockerNAT->接続タイプに移動します:内部からプライベートに変更、適用、内部に戻し、適用
  • MobyLinuxVMを再起動します
  • Dockerを再起動します
  • Dockerネットワークプロファイルを「プライベート」に設定します。管理者としてPowerShellでコマンドを実行する
    Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private
  • DockerNAT接続でのMicrosoftネットワークのファイルとプリンターの共有のリセット
  • Docker->設定->共有ドライブに移動し、Cを共有します。

6
価値metioning Set-NetConnectionProfile管理者としてのPowerShellで実行したと正常ではないCmdをすることです。私にとっては問題なく動作しますが、イーサネットアダプタはそのままですunidentified network
DarkMukke

3
カーペット爆撃FTW。他のソリューションはどれも機能しませんでした。ありがとう。
デビッドウェスト

これは100%機能しました。今回は他のどのオプションも機能せず、最終的な解決策はネットワークをプライベートに設定することでした。
lordg

ありがとう!あなたは私の日を救った。これは、このいまいましいバグを修正する唯一の作業方法です。
TimeCoder

私のために働いた。他のソリューションのほとんどはしませんでした。すべての手順に従ってください。自分の危険で、「Dockerネットワークプロファイルを「プライベート」に設定するSet-NetConnectionProfile -interfacealias "vEthernet(DockerNAT)」-NetworkCategory Private」の手順を逃しました。
Slim氏

54

私の解決策はVPNから切断することでした。それが問題を引き起こしていた


2
私はVPNから切断した後も問題を解決しました。もちろん、他のすべての可能性を使い果たすまでは試しませんでした。 ため息
キルカイヤ2018年

私は1日の半分を探していて、VPNから切断する必要がありました。ありがとう。
HELPME 2018

1
シンプルな解決法..ありがとう!
MilanYadav

1
ありがとう!Windowsの起動時に自動的に起動するVPNクライアントを忘れてしまいました。
Fabio Formosa、

ありがとうございました!私は別の指示に従って成功しませんでしたが、VPNから切断されると、うまくいきました!!!
MeIr

27

このエラーが発生したときに、サードパーティのファイアウォールを使用していませんでした。私はそれがWindowsファイアウォールの問題であると確信していましたが、Windowsファイアウォールを無効にしても機能しませんでした。多くの調査の後、私はようやくこのブログ投稿を見つけました:Windows 10上のDockerエラー:ファイアウォールがファイル共有をブロックしています...

それは終わった、NOT Windowsファイアウォールが組み込まれてやってました。

修正

  1. vEthernet(DockerNAT)ネットワークアダプターからMicrosoftネットワークのファイルとプリンターの共有をオフにします(接続はWindows ネットワークと共有センターで確認できます)。
  2. 再度確認し、有効になっていることを確認してください

ありがとうございます。
LewisCheng-MSFT 2017

どうやらこれも私のために働いた。私はWindowsファイアウォールを確認しましたが、おそらく正しい規則があり、おそらくdocker自体によってプレインストールされています。
Davide Inglima

これが機能する理由と、問題の実際の根本原因が何かを知っておくとよいでしょう。頻繁に発生するようです。
ジェイソン・ロウ2017年

問題は、システムの再起動後にもう一度実行する必要があることです
AFD

@AFD、面白いです、私はその問題を持っていません。
jiminikiz 2017年

22

最近のWindows 10の更新後、CドライブがDockerと共有されなくなりました。再共有しようとすると、Windowsファイアウォールによってブロックされたという同じ問題が発生しました。

上記の解決策を検討したところ、このページで見た他のどのソリューションよりも簡単なものが見つかりました。ではコントロールパネル\すべてのコントロールパネル項目\ネットワークと共有センター、上のvEthernet(DockerNAT)接続、私は、プロパティオフにMicrosoftネットワーク用ファイルとプリンタの共有をして設定を保存しました。次に、プロパティを再度チェックして再度有効にし、再度保存しました。

この時点で、Docker設定でCドライブを再共有することができました。なぜこれが機能したのかはわかりませんが、ファイアウォールの問題ではなく、すでにDockerSmbMountのエントリがあります。


WOWこれは残念なバグです..私は長い間ありがとう一日中検索
FAjir

これはほとんど機能しました。ファイアウォールメッセージは表示されませんが、チェックボックスがチェックされたままになりません!
jokab

17

カスペルスキーでこの問題がありました。カスペルスキーをオフにすることで問題が解決したため、ファイアウォールであることがわかりました。私の場合、カスペルスキーは何らかの理由でポート445をすでにブロックしていました。ファイアウォール、ローカルサービス(TCP)のパケットルールに移動し、ブロックポートのリストから445を削除する必要がありました。

画像1

画像2


1
私のために働いた!ただし、カスペルスキーES 10ではUIの外観が異なりました。次のように表示されます。[設定]タブ>左側の[ファイアウォール]を選択> [ネットワークパケットルール]ボタンをクリック> [TCP接続ローカル]を選択>上部の[編集]を選択
サイモンB.

1
リストから445を削除する代わりに、「アクション」を「ブロック」から「アプリケーションルールによる」に変更しました。したがって、「ローカルサービス(TCP)」から445を削除し、「アプリケーションルールによる」アクションを含む新しいルール「Docker SMBマウント」を作成することも機能するはずです。
ジムソンカンナンタラジェームズ2018

これは私のために働いた。カスペルスキーを一時停止し、Docker for Windowsで共有ドライブを有効にする必要がありました。
2019

カスペルスキーのソリューションを共有していただきありがとうございます。それは私のために働いた。
namit

私は同じ問題を抱えており、matthewhorne.me /…
Anthony O

11

ドメインネットワーク上のWindows 10マシンの場合、Hyper-V仮想イーサネットアダプターを作成すると、パブリックネットワークとして分類されます。これをプライベートネットワークに変更して、より緩和されたWindowsファイアウォールルールを許可し、ファイル共有を許可する必要があります。

PowerShellで次のコマンドを実行します。

Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private

マシンの仮想Hyper-Vネットワーク接続が別の名前で呼ばれている場合は、名前を引用符で変更してください。


私にとっては魅力のように働きました。Windows 10 v10.0.17763ビルド17763、Docker v18.09.2ビルド6247962のPowershell 6セッションでコマンドを実行し、Norton Security Suiteを実行しました。
アダム

9

私の問題は、Cisco Anyconnect VPNが内部のDockerネットワークに干渉することでした

これを修正するには:
Cisco Anyconnect設定>設定>チェックAllow local (LAN) access when using VPN


これは、ファイルプリント共有の提案がうまくいかなかったときに私にとってはうまくいきました。Anyconnect Allow local (LAN) access when using VPNはすでにオンになっているので、オフにして、切断し、オプションを再チェックして、VPNに再接続しました。Docker for Windowsは、必要に応じてドライブ共有を適用しました。
アーロン

ドライブを共有するには、Cisco AnyConnectを切断する必要がありました。何か案は?
ジャック

どうやら私たちの企業ネットワークの戦士は0.0.0.0/0を確保しているので、私は運が悪かった:-(
Jack

8

他の回答で述べたように、DockerはVPNでうまく機能しません。Nordvpnを使用している場合は、「LANの非表示」およびおそらく「インターネットキルスイッチ」を無効にする必要があります。

VPNがアクティブな場合でも機能するはずです。

NordVPNクライアント


2
ありがとうございました!これで解決しました。2週間もたまった!
user3034

1
どうもありがとうございます!数時間、ネットワーク設定をいじくりまわして、これが私のために働いた唯一のものです!
AnotherShruggingPhysicist

6

これは、インストールされているファイアウォールによって異なります。私の場合、組み込みのWindowsファイアウォールを無効にし、ESET Smart Securityを使用しているため、ルールは次のようになります。

  • Dockerがホストに接続することを許可し、それを許可に設定する必要があるため、IN接続のルールを作成します。

ここに画像の説明を入力してください

  • ドキュメントの意味で説明されているように、ポートを適切に設定します445

ここに画像の説明を入力してください

  • リモートIPアドレスを設定します。

ここに画像の説明を入力してください

Windowsファイアウォールとは関係がないので、これは答えではないかもしれませんが、何をすべきかについての手掛かりを与える可能性があります。


ありがとうReynier-私は、Windowsファイアウォールの同等のもので私ができる限りあなたが示すものをフォローしました。-[全般]タブ= [有効]-[プロトコルおよびポート]タブ= TCPプロトコルおよびローカルポート= 445-[スコープ]タブ=リモートIP = 10.0.75.2しかし、同じエラーメッセージが表示されます。すべてのポートとIPアドレスを許可-同じ結果。別のルールが優先されていますか?
リブアイ

私がWindowsファイアウォールを嫌い、これまでこれに対処したことがないので、あなたが持っているもののスクリーンショットをいくつか追加すると、より良いでしょう...
ReynierPM

「システム」アプリケーションをどのように選択できますか?
Küzdiメイト

「システム」アプリケーションを追加する必要はありませんが、IP範囲10.0.75.1/24の既知のネットワークでDockerNATネットワークが信頼されていることを確認する必要があります
Miguel

ESETは使用していません:/
Ionel Lupu '30

4

上記のどれも私にとってはうまくいきませんでした。

最後にトリックを実行したのは、「vEthernet(DockerNAT)」ネットワークのプロパティを開き、「ネットワーク」タブの下のリストの下部にある「Hyper-V拡張可能仮想スイッチ」ボックスをチェックしたことです。

これが実際の修正なのか、それともネットワークアダプタが何らかの理由でリセットされたのかはわかりませんが、うまくいきました!


4

Cisco AnyConnectを実行しているときに多くの人がこの問題を抱えているようです。私は同じ問題を抱えており、ここに私が解決した方法があります:

原因:Dockerで使用されているサブネットは、保護されたルートのリストにあります Cisco AnyConnectによって管理されているされたます(このリストはVPNの管理者によって管理されていると思います)。

解決策:Dockerが使用するサブネットを変更して、AnyConnectで管理されているリストと重複しないようにします。

たとえば、私の場合、10.0.75.0(10.0.0.0/8と重複していた)から172.31.0.0/28に変更しました。 ここに画像の説明を入力してください


3

私は同じ問題を抱えており、すべての修正を試みました-そして、複数のものが必要であることがわかりました:

  • ファイアウォールルールを追加する(Norton Security for me)
  • ネットワークをプライベートにする
  • ドライブを共有する

完全な説明をhttp://kajabity.com/2017/08/unblock-docker-for-windows-firewall-issues-with-host-volumes/に書きました


1
「このリンクで質問に答えることができますが、答えの重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。」
McGrady 2017

私にとって重要なのは、Dockerネットワークをプライベートにすることでした。
マイクキャロン2018

3

最近のWindows 10の更新後、GドライブがDockerと共有されなくなりました。再共有しようとすると、Windowsファイアウォールによってブロックされたという同じ問題が発生しました。

次に、いくつかの提案でこの問題を解決しようとしましたが、その後、共有ドライブの下にある認証情報をリセットしてみましたが、問題は解決しました。

だからあなたが望むならあなたはこれをやろうとすることができます-

ここに画像の説明を入力してください


3

誰もが投稿したものはすべて私にとってうまくいきませんでした。

これでした。

EDGEリリースをインストールしました。次にWINDOWS DEFENDERに行って、DOCKER NATのファイアウォールを無効にしました。(実際のイーサネットアダプターではなく、Docker NATのみ)

Windows Defender / Firewallを無効にしたら、その方法で問題なく動作しました。

うん。それがあなたたちの一部を助けることを本当に期待しています!


特定の接続(dockerNat)のファイアウォールを無効にすることで問題が解決しました。どうもありがとうございました!
Mafu

特定のネットワークアダプター/接続に対してWindows Defenderファイアウォールをどの程度正確に無効にしましたか?
バルカンレイヴン

3

私の場合、セキュリティが強化されたWindows Defender Firewallで「Block TCP 445」を無効にすると、機能しました。そして、有効に設定した後に、再びそれを共有ドライブをドッカーに。

TCP 445ブロックの設定

共有ドライブの設定


NSAハッキングツールがリークされたときに、このファイアウォールルールを個人的に追加したことに気づきました。ありがとう!
Danny Z

2

F-secureにも同じ問題があり、DeepGuardがDockerサービスをブロックしていました。私の解決策は:

オープンF-Secureクライアントをクリックし、「タスク

ここに画像の説明を入力してください

選択して「プログラムが開始することを許可します

ここに画像の説明を入力してください

リスト「com.docker.service」から選択し、「削除」を押します

ここに画像の説明を入力してください

その再起動 Dockerクライアント、ファイル共有の申請を試みます。

ここでも非常に良いトラブルシューティングガイド:エラー:ファイアウォールがWindowsとコンテナー間のファイル共有をブロックしています


2

ファイアウォールでCドライブを共有できないという同じ問題がありました。上記の解決策をすべて試しましたが、うまくいきませんでした。次に、マシンからdockerを完全にアンインストールし、Control Panel\Programs\Programs and Features -> select Docker for Windows -> Uninstall
次にdocker WebサイトにGet Docker for Windows (Stable) 移動して、
ドライブCを共有できた後をクリックします。


1
私は文字通りすべてを試しましたが、この解決策だけが私のために働きました。ありがとう!
Charis Moutafidis

2

AVG Internet Securityの場合、インターネット接続共有モードファイアウォール設定うまくいきました。

ここに画像の説明を入力してください


2

受信ファイアウォールルールが正しく設定されていることを確認した後、およびファイルと印刷共有サービスをアンインストールして再インストールした後でも動作しませんでした。

解決策:その上、3つ目のことも行う必要がありました。パブリックネットワーク上では受信接続を禁止するチェックボックスを無効にする必要がありましたの特定のファイアウォール設定で、。それをした後、それは私のためにも働き始めました。このメッセージの最後に添付されているスクリーンショットを参照してください。

このオプションがすでに存在している期間がわかりません。現在、Win 10 Pro 1709 16299.402に取り組んでいます。


1.パブリックネットワークの特定のファイアウォール設定を開く パブリックネットワークの特定のファイアウォール設定を開く

2.このチェックボックスをオフにします このチェックボックスをオフにします


2

カスペルスキーインターネットセキュリティを使用すると、vEthernet (DockerNAT)ネットワークアダプターのタイプをTrusted network

[設定]> [保護]> [ファイアウォール]> [ネットワーク]> [vEthernet(DockerNAT)]> [信頼できるネットワーク]を選択します

ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください


2

2020年1月25日

それは古いバージョンの問題であるようです、私は最後のバージョンをインストールしました:

Docker version 19.03.5, build 633a0ea

そしてそれは私のために設定なしで働いた。

ここに画像の説明を入力してください


1

これ(下のリンク)は、私がこれまでに見つけた最良の修正のようです。リブート後も持続します。それはここで最もよく説明されています:https//gist.github.com/biggyspender/8b5b2ed9ff63de31045d41304e3915b3

vEthernetネットワークインターフェイスは、システムが起動するたびに動的に作成されるようで、「プライベート」グループ(機能する場所)ではなく、「パブリック」グループに作成されます。Docker起動スクリプトの1つ(上記のリンクで呼び出されています)での編集は、上記のDavid Tesarによって指摘されたpowershellコマンド/修正を自動化します。

スクリプトを編集して「内部」を「プライベート」に変更するのではなく、スクリプトに関数を追加するほうが運が良かったです。


1

上記のいずれでも機能しない場合は、VPNに接続していないことを確認してください。それがまさに私に起こったことです。CiscoAnyConnectクライアントを使用してVPNに接続しました。また、Docker設定で静的DNSを設定していることを確認してください。


両方(VPN AnyConnectとDocker)が必要な場合は、私のコメントを参照してくださいstackoverflow.com/a/58406873/9064636
Averell

1

私はこことhttps://github.com/docker/for-win/issues/360にリストされているすべてを試しました

何もうまくいきませんでした。

Dockerコンテナーで開発環境を実行し、企業VPN(Cisco AnyConnect)でプロジェクトファイルにアクセスするには、コンテナーにローカルドライブをマウントする必要があります。

ここに私のために働いたドッカーハックがあります。--publish 8000:8000既存のdocker runコマンドに追加します。

そう

docker run -v C:/Users/kumar.joshi/KumarData:/mnt --name dev <image:latest>

となります

docker run -v C:/Users/kumar.joshi/KumarData:/mnt --name dev --publish 8000:8000 <image:latest>

ポートが使用されていないことを確認してください。それ以外の場合は、このエラーが発生します。

0.0.0.0:8000のバインドに失敗しました:ポートはすでに割り当てられています


1

つまり、Edgeバージョンを使用します。

2.1.5.0(2019-11-04)以降のDocker for WindowsのEdgeバージョンには、ファイアウォールの変更を必要としないファイル共有の新しい実装が含まれています https://docs.docker.com/docker-for-windows/edge-release-notes /

「新しいファイル共有の実装:Dockerデスクトップでは、Samba、CIFS、Hyper-Vネットワークの代わりにgRPC、FUSE、およびハイパーバイザーソケットを使用する新しいファイル共有の実装が導入されました。新しい実装では、I / Oパフォーマンスが向上しています。さらに、新しいファイルシステム:

Users don’t have to expose the Samba port, and therefore do not experience issues related to IT firewall or the drive-sharing policy.
There is no need to provide user credentials to Docker Desktop. File access rights are automatically enforced when accessing mounted folders through containers.

エッジバージョンをダウンロードできます:https : //download.docker.com/win/edge/Docker%20Desktop%20Installer.exe

現在のところ、2.1.7.0のエッジバージョンが次の安定版リリースで使用されることに注意してください。したがって、Edgeを使用するリスクは比較的低いです。または、これらのファイアウォールの問題をすべて回避するために、次の安定版リリースを待つことができます。



0

とても簡単だと思いました。ネットワーク接続にアクセスしてください。コントロールパネル/ネットワークと共有に移動できます。さまざまなつながりがあります。Docker接続を検索します。デフォルトを選択します。ネットワークを選択した後、プロパティに移動します。プロパティセクションで、オプション[ Hyper-V Extensible Virtual Switch ]を有効にします。これは、仮想コンテナーがネットワークカードを使用するのに役立ちます。


0

(数時間の試行錯誤の後で)私にとってそれが何をしたかは、サブネットマスクを255.255.255.240から255.255.255.0(何も変更しないはずです)に変更することでした。

試行錯誤の一環として、記事に記載されている他のすべてを実行しましたが、成功しませんでしたが、この最後のステップでそれが実行されました。 255.255.255.240ませんでした。

認めますが、意味がありませんが、ネットワークの変更によってのみトリガーされる内部状態に関連している可能性があります。

とにかく、私が1つだけを手伝った場合、それは努力する価値がありました。

Docker Desktop edge, 2.0.4.1 (34207)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.