We run hardware, our own physical servers, in a bunch of regions around the world. We have an API (and a CLI) that will take a Docker container (or a Dockerfile, or a bunch of other things), turn it into a VM, and it run it on that hardware. That VM is given a routable Anycast IP address, so your users will automatically tend to hit the closest instances of your app.
Hope that helps!