The real self-hosted solution is running your server off a solar powered yacht in international waters while transmitting and receiving all data via worldwide shortwave radio. Fire any customers not willing to invest in a SW-Ethernet adapter.
Even if you don’t need HA it’s still worth it for a small team for ease of deploy.
Docker's interface might seem simple, but it adds an entirely new layer of complexity, with semantics only superficially understood by the vast majority of its users, and nobody ever seems to talk about Docker's negatives. A good rule of thumb might be: if you can't accurately explain how Docker works under the hood, or if you don't understand the OS components Docker itself uses, you shouldn't use it.
The vast majority of startup web apps don't need anything more than a decent MVC framework (seriously, just use the web as designed) and a fast database. Keep a warm spare of your application running if a box goes down and you need to cut over or something. No, it's not sexy. No, they probably won't invite you to speak at Re:Invent. But your shit will work and it'll be cheap and FAST.
I've seen way too many basic CRUD apps, written by developers who mean well, needlessly overcomplicated in the name of things like "scalability" and "reliability". And guess what? They were some of the least scalable, least reliable applications. I'm talking applications where low double-digit requests per second for basic web pages caused the entire thing to shit itself.
So no, you don't actually need your own mini cloud provider to run a solid service. You just need to know what the hell you're doing.