Support for NAT and npipe on Windows
by lucastheisen@pastdev.com
Hi All,
I have really wanted to get started using minishift for my teams development efforts, but there are currently 2 major issues preventing it. My development staff mostly uses Windows laptops, and Docker for Windows has already solved both of them.
The first, and most important is the networking issue. Without NAT support (https://github.com/minishift/minishift/issues/418), we would have to stop/reconfigure/start every time we switch from wired ethernet to wireless due to corporate restriction that the laptop is only on one network at a time. Further, when working remote we are behind a VPN as our external network and I cannot figure out how to setup a VMSwitch that goes through the VPN. NAT support would resolve this.
The second has to do with our corporate VPN. Due to security requirements, the laptop itself is not allowed to be dual-homed, so the VPN actively prevents this by stealing ALL of the routes. This includes all of the reserved IP's (10.x, 192.168.x, ...) that are used to communicate with the hyper-v image that runs minishift. I am not sure of the inner details, but Docker for Windows uses npipe for the docker command which allows us a way around this problem. And since docker then exports the ports back to localhost, we can access all of the running containers using loopback ips. Without this feature, none of my staff can work with minishift while on the VPN.
As mentioned above, Docker for Windows provides NAT, and npipe, so we can and are using it for our current effort to containerize our entire infrastructure. However, our final deployment is to OpenShift. This means we typically develop using Docker infra (Dockerfile, docker-compose, ...) but then have to also provide OpenShift infra (s2i, Kompose, ...). It would be really nice to remove the Docker part altogether.
Anyway, thanks for doing all of this, and thank you for considering this request.
Lucas Theisen