launch vm: 1-2 min
config/deploy: 3-5 min (ansible)
create image: 2/3 min
launch new asg: 2-5 min
Containers greatly reduce most of these steps
This is one way to do it. (search Immutable Infrastructure)
For this application, traffic is quite stable so it doesn't come up often. But once or twice, we had some bug causing performance regressions.
They were not visible on the first day, but as usage grew over time the cluster started growing with the problem.
So it allowed the application to stay online (at an additional cost) until devs pick up the problem and have a solution ready, probably coming up in the following sprint only.
Config is inherited from the environment and cloud provider as the targets are Amazon Linux 2 based.
In addition to that, with cgroups and namespaces you get a lot of other benefits, which can be used with eg: systemd/etc but it's nice when one tool handles all of it.
My point is it is better to avoid the problem than employ a solution.
As other posters said, Docker largely exists to help with any situation where you don't have a single binary. These situations are still very common for many developers and devops engineers. And in those cases, Docker can be very helpful.