Windows防火墙阻止了我允许Windows的Docker在Windows 10计算机上共享C:的尝试。
关闭Windows防火墙后,工作正常。当我得到
防火墙阻止Windows与容器之间的文件共享。请参阅文档以获取更多信息。
该文件说
您不需要在任何其他网络上打开端口445。默认情况下,允许从10.0.75.2(虚拟机)连接到10.0.75.1端口445(Windows主机)。
我因试图找到方法而“被谷歌搜索”-有人可以建议吗?
Windows防火墙阻止了我允许Windows的Docker在Windows 10计算机上共享C:的尝试。
关闭Windows防火墙后,工作正常。当我得到
防火墙阻止Windows与容器之间的文件共享。请参阅文档以获取更多信息。
该文件说
您不需要在任何其他网络上打开端口445。默认情况下,允许从10.0.75.2(虚拟机)连接到10.0.75.1端口445(Windows主机)。
我因试图找到方法而“被谷歌搜索”-有人可以建议吗?
Answers:
实际上,您实际上不需要共享C驱动器,而只需重新安装(甚至可能取消选中-单击“确定”-然后检查)Hyper-V虚拟网卡上的文件和打印共享服务。 请参阅本文。
另外,如果您的网络配置文件(即公共)受到限制,请考虑通过以下PowerShell命令将“ vEthernet(DockerNAT)”卡的默认“未识别网络”更改为私有,然后再执行以下操作:
Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private
Get-NetConnectionProfile
以确保DockerNAT
网络在Private
类别中
0x80071779
,我尝试禁用->启用。还禁用了防火墙...我也试图将其设置为私有,但仍然无法正常工作,有什么想法吗?
Disable-NetAdapterBinding -Name "vEthernet (DockerNAT)" -ComponentID ms_server
好的,所以在遇到同样的问题后,我找到了解决方案。
这是我所做的:
步骤1:打开ESET。然后点击设置
步骤2:点击“ 网络保护”
步骤3:单击疑难解答向导
步骤4:查找通信10.0.75.2(默认docker IP设置),只需检查docker设置 中定义的IP范围。然后寻找该范围内的IP。
步骤5:单击取消阻止按钮,然后您应该会收到此屏幕。
这为我自己解决了这个问题。
然后,您可以转到“规则”并检查已添加的规则。
PS:这是我的第一篇文章,对于任何不正确的程序表示抱歉。
只有此解决方案可以帮助我:
Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private
Set-NetConnectionProfile
是,在PowerShell中以admin(而不是正常的Cmd)身份运行。它对我来说很好用,但以太网适配器仍然unidentified network
我的解决方案是断开VPN连接。导致问题的原因
遇到此错误时,我没有使用任何第三方防火墙。我坚信这是Windows防火墙问题,尽管禁用Windows防火墙对我不起作用。经过大量研究,我终于找到了该博文:Windows 10上的Docker错误:防火墙阻止了文件共享...
它结束了不具有内置的Windows防火墙做。
修复
- 从vEthernet(DockerNAT)网络适配器取消选中“ Microsoft网络的文件和打印机共享”(您可以在Windows 网络和共享中心中找到该连接)。
- 重新检查并确保已启用。
最近Windows 10更新后,我的C驱动器停止与Docker共享。我遇到同样的问题,说它在尝试重新共享时被Windows防火墙阻止。
通过上述解决方案,我发现对我有用的东西比在此页面上看到的任何东西都简单。在vEthernet(DockerNAT)连接上的“ 控制面板\所有控制面板项目\网络和共享中心”中,我取消选中“ Microsoft网络的文件和打印机共享 ”属性并保存了设置。然后,我再次检查该属性以重新启用它并再次保存。
至此,我能够在Docker设置中重新共享C驱动器。我不知道为什么这行得通,但是这不是防火墙问题,已经有DockerSmbMount条目。
卡巴斯基遇到了这个问题;关闭卡巴斯基的工作原理,所以我知道这是防火墙。就我而言,卡巴斯基已经出于某种原因阻塞了端口445。我必须转到防火墙,本地服务(TCP)的数据包规则,并从阻止端口列表中删除445。
对于域网络上的Windows 10计算机,在创建Hyper-V虚拟以太网适配器时,它将被归类为公用网络。您必须将其更改为专用网络,以允许使用更为宽松的Windows防火墙规则,从而允许文件共享。
在PowerShell中运行以下命令:
Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private
如果计算机的虚拟Hyper-V网络连接被称为其他名称,请更改引号中的名称。
我的问题是Cisco Anyconnect VPN干扰了内部docker网络
要解决此问题,请转到:
Cisco Anyconnect设置>首选项>检查Allow local (LAN) access when using VPN
Allow local (LAN) access when using VPN
已经被检查过,所以我取消选中它,断开连接,重新检查该选项,然后重新连接到VPN。然后,适用于Windows的Docker根据需要应用了驱动器共享。
如另一个答案所述,Docker在VPN上表现不佳。如果您使用的是Nordvpn,则必须禁用“ LAN上的不可见性”,并且可能禁用“ Internet Kill Switch”。
如果已经这样做,即使在VPN处于活动状态时,它也应该可以工作。
这取决于您安装了什么防火墙。就我而言,我确实禁用了内置Windows防火墙,并且我正在使用ESET Smart Security,因此我的规则如下所示:
445
:也许这不是答案,因为它与Windows防火墙无关,但可以为您提供操作提示。
我遇到了同样的问题,并尝试了所有修复程序-事实证明,不只一个是必要的:
我已经在http://kajabity.com/2017/08/unblock-docker-for-windows-firewall-issues-with-host-volumes/上写了完整的解释
我对F-secure有同样的问题,DeepGuard阻止了Docker服务。我的解决方案是:
打开F安全客户端,然后单击“ 任务 ”
选择“ 允许程序启动 ”
从列表“ com.docker.service”中选择,然后按“ 删除 ”
之后,重新启动 Docker客户端并尝试申请文件共享。
此处的故障排除指南也非常好:错误:防火墙阻止Windows与容器之间的文件共享
我在防火墙上遇到了同样的问题,不允许我共享C驱动器。我尝试了上面列出的所有解决方案,但对我没有任何帮助。然后我从机器上完全卸载了docker Control Panel\Programs\Programs and Features ->
select Docker for Windows -> Uninstall
然后转到docker网站并单击Get Docker for Windows (Stable)
之后,我就可以共享驱动器C
这个(下面的链接)似乎是我到目前为止发现的最佳解决方案。它在重新启动后保持不变。最好在这里解释:https : //gist.github.com/biggyspender/8b5b2ed9ff63de31045d41304e3915b3
每次启动系统时,似乎都会动态创建vEthernet网络接口,并且该接口是在“公共”组中创建的,而不是在“专用”组中创建的。在Docker启动脚本之一中的编辑(在上面的链接中被称为)将自动执行以上由David Tesar指出的powershell命令/修复....
我比较幸运的是将功能添加到脚本中,而不是编辑脚本并将“内部”更改为“私有”。
如果以上方法均无效,请确保未连接到VPN。这就是我所发生的一切,我已使用Cisco AnyConnect客户端连接到VPN,还请确保您在docker设置中设置了静态DNS。
我尝试了这里和https://github.com/docker/for-win/issues/360上列出的所有内容
什么都没有为我工作。
我在docker容器上运行我的开发环境,而在Corporate VPN(Cisco AnyConnect)上时,我需要在容器上安装本地驱动器以访问我的项目文件。
这是对我有用的Docker骇客。添加--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失败:端口已分配
简而言之,请使用Edge版本。
自2.1.5.0(2019-11-04)开始,适用于Windows的Edge版本的Docker for Windows具有文件共享的新实现,而无需进行防火墙修改 https://docs.docker.com/docker-for-windows/edge-release-notes /
“新的文件共享实现:Docker Desktop引入了一个新的文件共享实现,该实现使用gRPC,FUSE和Hypervisor套接字而不是Samba,CIFS和Hyper-V网络。新的实现提供了改进的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将用于下一个稳定版本:“注意:Docker Desktop Edge 2.1.7.0是即将发布的主要稳定版本的候选版本。”。因此,使用Edge的风险相对较低。或者,您可以等待下一个稳定版本以避免所有这些防火墙问题。
对于无法以任何方式解决此问题的用户,可以尝试以下操作:将驱动器手动映射到Docker主机:
https://github.com/docker/for-win/issues/466#issuecomment-416682825
研究在这里:https : //github.com/docker/for-win/issues/466#issuecomment-398305463