Docker force container to specific physical interface

I’ve been searching around the internet for the past week or so to find a solution to this, but so far I have come up empty handed.

There are three network interfaces available to my host, and I need to execute a phantomjs script on the wlan1 interface.

  • How to retrieve the remote IP address using Play! inside a docker container
  • Docker MySQL exits after docker-compose up
  • Simple PHP-CLI Cron Supervisor Docker not working
  • Where to see the logs for a failed deployment on managed Vms on Google App Engine?
  • Docker tool or feature to define per-project container aliases?
  • how to send param from docker to fluentd to dynamically decide on file output
  • My idea was to utilize Docker, but am running into issues locking a container to a specific interface.

    Here’s what I’ve tried, all either redirects to another interface, or has no network access. The only method that allows explicit access to the interface I need is by turning off all other interfaces.

    /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
    

    I’ve also fiddled with ip routing, and 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 would be the subnet created by the docker-compose network, 10.0.0.151 would be the ip assigned to the wlan1 interface.

    Any insight would be appreciated, and I’m sure will help those with similar goals.

  • How to setup group of docker containers with the same addresses?
  • ServiceStack Docker architecture
  • connecting to exposed docker container
  • How to see image tag name in my private docker registry
  • Restart flask app in docker on changes
  • How do I use livereload.js when my server is hosted?
  • Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.