At the risk of oversimplifying, you can use Docker wherever you might want to use a full-fledged VM. You can use it to run a job, host a webserver or any other scenario that you can think of. What makes Docker (rather containers) different from a VM is the way it sandboxes all your application&#x27;s dependencies into an isolated sandbox.<p>So let&#x27;s say you have a python app that for relies on a dependency that needs C bindings (e.g. ImageMagick). Instead of running `.&#x2F;app.py` freshly downloaded from some Git &lt;repo&gt;, you would run `docker run &lt;repo&gt; .&#x2F;app.py`. In the former case, you would need to care of, say, the C dependencies. In the second case, they are packaged in the image that Docker will download from &lt;repo&gt; prior to run the .&#x2F;app.py process in it. (Note that the two &lt;repo&gt; are not the same things. One is a Git repo, the other is a Docker repo - called an Image.)<p>Think of process of the building a container as taking a snapshot of the entire OS (such as VM images) but w&#x2F;o the high overhead of running these images.<p>Feel free to reach out to me if you need more clarification!