运行Docker for Mac时访问本地网络上的设备

运行Docker for Mac时访问本地网络上的设备,docker,networking,docker-compose,docker-networking,Docker,Networking,Docker Compose,Docker Networking,我的网络上有一些智能wifi设备,我可以从Mac上的脚本中看到。但是在Docker容器中运行相同的脚本时,这些设备是不可见的 我假设这与Docker有关,因为Mac无法使用--网络主机或网络模式:主机连接到主机的网络。我还假设这个问题在Linux机器上不存在,但我没有一台可以测试 解决办法是什么 编辑: 确认了在Ubuntu virtualbox中运行时,此功能运行良好,但我真的不必在其内部开发。如果启动容器时使用网络选项作为主机,则容器将共享主机的网络堆栈。因此,可以从主机访问的任何设备都应该

我的网络上有一些智能wifi设备,我可以从Mac上的脚本中看到。但是在Docker容器中运行相同的脚本时,这些设备是不可见的

我假设这与Docker有关,因为Mac无法使用
--网络主机
网络模式:主机
连接到主机的网络。我还假设这个问题在Linux机器上不存在,但我没有一台可以测试

解决办法是什么

编辑:


确认了在Ubuntu virtualbox中运行时,此功能运行良好,但我真的不必在其内部开发。

如果启动容器时使用网络选项作为主机,则容器将共享主机的网络堆栈。因此,可以从主机访问的任何设备都应该可以通过容器访问

docker run --network host ...

将容器添加到网络将允许它们相互通信,但如果您想访问主机上运行的其他服务,则host.docker.internal(从18.03+)。我必须在mac mini设置中执行同样的操作才能访问外部服务。 [


如果您必须访问另一台主机上的服务,那么您可以在docker主机上设置nginx服务器,并设置代理传递规则将其定向到远程服务。

谢谢,我会尝试一下。当使用
docker compose
并为该服务设置
network\u mode:host
时,它将无法工作。这是预期的吗?进一步操作后研究由于Docker for Mac的工作方式,我相当确信这不是一个解决方案。