Why not prevent you VPN from taking over your entire connection ? Just disable the use of default gateway on remote network for the VPN connection and Docker should correctly work by default (via eth0).
Additionally, you can use the routing command to dictate the route taken in different scenarios (example: when VPN is active).