我在网络上有一些智能WiFi设备,可以从Mac上的脚本中看到。但是从Docker容器中运行相同的脚本这些设备不可见。
我假设这与Docker有关Mac无法使用--network host
或network_mode: host
连接到主机网络。我还认为该问题在Linux机器上不存在,但我没有测试。
什么是解决方法?
编辑:
在Ubuntu VirtualBox内运行时,确认这很好,但是我真的不必在其中开发。
如果用网络选项作为主机启动容器,则容器将共享主机的网络堆栈。因此
docker run --network host ...
将容器添加到网络中将允许它们相互通信,但是如果要访问主机上运行的其他服务,则 host.docker.internal.internal (来自18.03 )。我必须在Mac Mini设置中执行相同的操作才能访问外部服务。[https://docs.docker.com/docker-for-mac/networking/]
如果您必须在另一个主机上访问服务,则可以在Docker主机上设置NGINX服务器和代理通行规则,以将其定向到远程服务。