Earlier quoted context omitted.
Took me a while to see the value of Docker. Ever deploy the same software to multiple servers, and it maddeningly behaves slightly differently on different servers, and you're not quite sure why? This is the problem docker solves. Install exactly once, when you build the image. Then deploy the exact same code, down to the bit, as many times as you want, to as many servers as you want. Or quickly roll back to the Dock…
So why not just make a virtual machine image and keep a pristine copy of it? I think this dates back to the mainframe era.
I think where Docker tends to shine is when you are operating at scale. For larger players using VMs to recreate a computing environment is expensive and eats into your bottom line. In such situations there's value in having some kind of tooling or API that partitions and simulates specific environments for processes running in the same kernel space. For better or for worse, in 2019, Docker is the best solution to this problem.