I'm planning to switch from a Windows VM to using containers for my applications. Right now, I have a Windows VM with two virtual NICs managed under IPs 192.168.1.250 and 192.168.251. My home router (192.168.1.1) is set up to route traffic from 192.168.1.251 through a dedicated VPN interface. I'm unclear on how to configure my Ubiquiti Gateway Max to route traffic from the containers since they are given private IPs that use NAT. Is there a way to assign a specific IP, like 192.168.1.251, to a container to achieve the same routing as my VM setup?
5 Answers
Many people initially think of VPNs as piracy, which can complicate discussions. But with MACVLAN, you can configure your containers to meet your specific routing needs without any fuss. Just make sure to set the right IPs!
I initially tried a more complex setup but ended up creating a separate VM specifically for VPN tasks. If you're using Kubernetes, it's straightforward to manage your containers and easily migrate them between nodes as needed.
You should definitely consider using MACVLAN or IPVLAN networks in Docker. This way, you can assign real IPs from your home network to your containers. It won't require any extra container setup; just create a MACVLAN network and connect your containers to it. For example, assign them IPs like 192.168.1.240, and then you'll have full control over routing the traffic through your VPN just like you have now with your VM.
If you want even more control, look into the specifics of MACVLAN vs IPVLAN, as there are slight differences in how they're used.
I've been using gluetun, and it's been great for routing container traffic through a VPN. If you're looking for a user-friendly solution, you might want to check it out! It handles the VPN connection and simplifies the setup for you.
Using Docker Compose along with MACVLAN or IPVLAN can make managing your network settings much easier. By defining them in a configuration file, you can assign fixed IPs directly from your home network to each container, making routing through your VPN a breeze.

Exactly! This approach simplifies things and aligns with what you already understand about NAT. Just remember to check the Docker docs for details on setting up MACVLAN.