Node.js 用于Mac主机网络访问的Docker

Node.js 用于Mac主机网络访问的Docker,node.js,docker,docker-compose,sonos,Node.js,Docker,Docker Compose,Sonos,我正在运行最新的docker for mac build,并且有许多基于docker compose的应用程序正在启动和运行——所有这些应用程序都接受从我的本地网络调用 我现在正在尝试实现一个node.js应用程序,它需要网络访问来扫描主机的网络并响应端口5005 谁能给我看一个docker-compose.yml文件,该文件允许以下联网: 本地网络: 192.168.123/24 路由器192.168.123.1 Docker for Mac正在我的macbook上运行,地址是192.168

我正在运行最新的docker for mac build,并且有许多基于docker compose的应用程序正在启动和运行——所有这些应用程序都接受从我的本地网络调用

我现在正在尝试实现一个node.js应用程序,它需要网络访问来扫描主机的网络并响应端口5005

谁能给我看一个docker-compose.yml文件,该文件允许以下联网:

本地网络: 192.168.123/24 路由器192.168.123.1

Docker for Mac正在我的macbook上运行,地址是192.168.123.118

在我的网络中,应该响应对容器的节点请求

容器需要扫描本地网络以查找服务

我尝试过使用一个或两个接口将默认网络、网桥网络和主机网络组合起来,但结果只是感到困惑

容器真的可以成为主机网络的一部分吗

我似乎记得,在virtualbox上运行docker时,这是可以实现的

我试图配置的实际代码是 我认为代码没有问题,只是我试图创建的环境有问题

我正在尝试运行的项目是Sonos controller应用程序:

以下是我的Dockerfile和docker-compose.yml文件以及构建Sonos控制器应用程序的命令

mkdir sonos 
cd sonos 
git clone https://github.com/jishi/node-sonos-http-api sonos 
docker-compse.yml

version: '2'
  services:
    sonos:
      build: sonos
      network_mode: host
sonos/Dockerfile

FROM node:4-onbuild
EXPOSE 5005 
之后,我可以启动控制器:

docker-compose stop; docker-compose-build; docker-compose up;
输出为:

Recreating sonos_sonos_1
Attaching to sonos_sonos_1
sonos_1  | npm info it worked if it ends with ok
sonos_1  | npm info using npm@2.15.11
sonos_1  | npm info using node@v4.6.2
sonos_1  | npm info prestart sonos-http-api@1.1.7
sonos_1  | npm info start sonos-http-api@1.1.7
sonos_1  | 
sonos_1  | > sonos-http-api@1.1.7 start /usr/src/app
sonos_1  | > node server.js
sonos_1  | 
sonos_1  | 2016-11-13T11:19:52.476Z INFO Presets loaded: { example: 
sonos_1  |    { players: 
sonos_1  |       [ { roomName: 'Bathroom', volume: 10 },
sonos_1  |         { roomName: 'Kitchen', volume: 10 },
sonos_1  |         { roomName: 'Office', volume: 10 },
sonos_1  |         { roomName: 'Bedroom', volume: 10 },
sonos_1  |         { roomName: 'TV Room', volume: 15 } ],
sonos_1  |      playMode: { shuffle: true, repeat: 'all', crossfade: false },
sonos_1  |      pauseOthers: false,
sonos_1  |      favorite: 'My example favorite' } }
sonos_1  | 2016-11-13T11:19:52.497Z INFO http server listening on port 5005
sonos_1  | 2016-11-13T11:20:18.478Z ERROR No system has yet been discovered. Please see https://github.com/jishi/node-sonos-http-api/issues/77 if it doesn't resolve itself in a few seconds.
最后一行是对该请求的响应:

我觉得在主机模式下运行的sonos容器无法看到我的本地网络,无法发现我的sonos扬声器