You can use a different container as network in docker: 'container:<name>' would route the container traffic through specified container.
Example vpn container:
docker run --name foo --cap-add=NET_ADMIN ...
Other container:
docker run --net=container:foo ...
Now you'd need to specify the respective routing rules [1] in the container.
[1] i.e. https://github.com/bubuntux/nordvpn/blob/master/start_vpn.sh...