Mac 上的 Docker...无法访问本地网络上的任何内容

And*_*ank 8 macos networking docker osx-elcapitan

运行 OSX 10.11.6(出于与其他一些不兼容更高版本的软件的兼容性原因,因此升级 OSX 不是解决方案)以及与 10.11.6 兼容的 Docker 最高版本,即 17.12.0-ce -mac55 (23011)。

在继续之前,我应该说我对网络、子网、网络掩码、网关等知识不太了解......

从我的任何容器内部,我无法访问本地网络上的任何主机(除了主机)。我的网络配置在主机上如下所示:

en4: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 00:50:b6:69:51:f3
    inet6 fe80::250:b6ff:fe69:51f3%en4 prefixlen 64 scopeid 0x4
    inet 172.25.18.19 netmask 0xfffffe00 broadcast 172.25.19.255
    nd6 options=1<PERFORMNUD>
    media: autoselect (1000baseT <full-duplex>)
    status: active  
Run Code Online (Sandbox Code Playgroud)

在容器中像这样:

eth0      Link encap:Ethernet  HWaddr 02:42:C0:A8:10:04
          inet addr:192.168.16.4  Bcast:192.168.31.255  Mask:255.255.240.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1683 (1.6 KiB)  TX bytes:2551 (2.4 KiB)
Run Code Online (Sandbox Code Playgroud)

例如,我可以从主机远程登录到 172.25.33.51 上的 HP JetDirect 盒子,但不能从任何容器。同样,我可以从主机(位于 172.20.38.62)的 Navision 服务器的 SOAP 服务器获取响应,但不能从任何容器获取响应。与 IP 略有不同的其他几台机器的情况相同。

问题是,我需要编写一个连接到 Navision 的集成包。

我有什么想法可以访问网络上的主机吗?