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

时间:2017-09-18 03:39:30

标签: docker networking docker-compose docker-networking

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

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

解决方法是什么?

编辑:

确认这在Ubuntu虚拟机内部运行时工作正常,但我真的不需要在其中进行开发。

2 个答案:

答案 0 :(得分:1)

如果以网络选项作为主机启动容器,容器将共享主机的网络堆栈。因此,容器可以访问从您的主机可访问的任何设备。

docker run --network host ...

答案 1 :(得分:0)

将容器添加到网络将允许它们彼此通信,但是如果您要访问主机上运行的其他服务,请 host.docker.internal (从18.03开始)。我必须在Mac mini设置中执行相同的操作才能访问外部服务。 [https://docs.docker.com/docker-for-mac/networking/]

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