Earlier quoted context omitted.
Docker actually helps managing complexity, by putting bits and pieces, scattered on the floor and putting them into a single cardboard box. - If you throw the box out, you know you did no harm to other boxes. - If you change your floor, you know you didn't wipe out something useful. - Aaand you can `git switch` to a well known state Ofcourse it's not 100% like that, in reality you still have to have some kind of cons…
What you are saying is actual complexity. A box can be a machine instead of container and all your points will still stand but with less complexity.
Howevre looking at the whole chain of process:
I can deploy service/app on my local machine, including dependencies, along with other independent services/apps.
So, I can reuse what I have for production. But ofcourse, local development stuff will have different env variables, some docker-compose etc.
But it is a joy, when you can:
1. git clone something
2. set some env variables
3. docker-compose up -d
And your app, along with database, elasticsearch, whatnot - is running
So for development purposes it really helps. For deployment purposes - if that box is dedicated to something, then yeah, many of the good use cases not necessary.