【问题标题】:Access devices on local network when running Docker for Mac运行 Docker for Mac 时访问本地网络上的设备
【发布时间】:2018-02-26 12:23:44
【问题描述】:

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

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

解决方法是什么?

编辑:

确认这在 Ubuntu 虚拟机中运行时运行良好,但我真的不必在其中进行开发。

【问题讨论】:

    标签: docker networking docker-compose docker-networking


    【解决方案1】:

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

    docker run --network host ...
    

    【讨论】:

    • 谢谢,我会试一试。当使用docker-compose 并为服务设置network_mode: host 时,它不起作用。这是预期的吗?
    • 经过进一步研究,我相当有信心这不是一个解决方案,因为 Docker for Mac 的工作方式。
    【解决方案2】:

    将容器添加到网络将允许它们相互通信,但如果您想访问在主机上运行的其他服务,那么 host.docker.internal(从 18.03+ 开始)。我必须在 mac mini 设置中做同样的事情才能访问外部服务。 [https://docs.docker.com/docker-for-mac/networking/]

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-18
      • 2023-03-22
      • 2023-02-17
      • 2016-05-29
      • 2017-08-11
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      相关资源
      最近更新 更多