在带有Desktop的Windows 11上,我正在运行一个应用程序,其中一部分在主机上运行,一部分在主机的应用程序启动的某些Docker容器上运行。容器的应用程序进程实际上运行相同的可执行文件(通过从主机挂载-v ),但具有不同的选项。使用网络,对吧?但是在我的应用程序中,当主机试图与客户端通信时,防火墙会阻止它,并向用户显示"Windows安全警报“:

我不明白为什么这是必要的,因为-v安装是没有它的工作。此外,用户实际上必须检查公共网络才能正常工作,即使我当前的以太网局域网连接设置为专用的。
一种选择是在主机应用程序中运行该程序:
netsh advfirewall firewall add rule name="TestRunner" dir=in action=allow protocol=tcp program="{Assembly.GetExecutingAssembly().Location}"
但是,运行它将发出一个UAC提示,它比Windows安全警报更不透明(至少它不需要用户更改复选框)。
我正在使用默认的Docker容器网络并将-it添加到Docker命令中。
我想避免使用任何一种网络提示。这有可能吗?
发布于 2022-07-18 17:38:53
我认为您的问题与-v安装卷无关。通过安装卷,容器可以通过其他机制访问主机上的卷,而不是网络。我认为你的问题是,这个应用程序不能在你的机器上正常运行--不是码头问题。一种选择是,您可以添加这个规则,您刚才通过GPO描述-如果您有这个可用。否则,您可以使用本地策略手动配置计算机。
https://stackoverflow.com/questions/72939926
复制相似问题