Docker将容器强制到特定的物理接口

过去一周左右,我一直在网上寻找解决办法,但到目前为止我已经空手而归了。

有三个networking接口可用于我的主机,我需要在wlan1接口上执行一个phantomjs脚本。

我的想法是利用Docker,但遇到问题locking一个容器到一个特定的接口。

以下是我所尝试的,全部或者redirect到另一个界面,或者没有networking访问。 唯一允许显式访问我需要的接口的方法是closures所有其他接口。

/etc/systemd/system/docker.service.d/docker.conf

 [Service] ExecStart= ExecStart=/usr/bin/docker daemon -b=wlan1 --ip=10.0.0.151 -H fd:// 

docker-compose.yml

 version: "2" networks: open_network_1: driver: bridge driver_opts: com.docker.network.host_binding_ipv4: "10.0.0.151" services: open_wifi_phantomjs: image: https://github.com/ollihoo/phantomjs-docker-rpi networks: - open_network_1 ports: - 10.0.0.151:80:80 - 10.0.0.151:443:443 

我也摆弄着ip routing和iptables

 ip route del 172.19.0.0/16 ip route add 172.19.0.0/16 dev wlan1 proto kernel scope link src 172.19.0.1 iptables -t nat -A POSTROUTING -s 172.19.0.0/16 -j SNAT --to-source 10.0.0.151 

172.19将是docker-composenetworking创build的子网,10.0.0.151将是分配给wlan1接口的ip。

任何洞察力将不胜感激,我肯定会帮助那些有相似的目标。