Practically no developers in their right mind want to write an application from scratch and run it on single server anymore. Instead, they want to tap existing services, keep the original coding to a minimum, and test/deploy the finished application in as automated a fashion as possible on scalable infrastructure.
At the start of the cloud era, PaaS (platform as a service) was intended to handle that process, much as the application server handled it in the client/server era. But a funny thing happened: PaaS never really took off. People opted for home-built solutions, with their own scripts and sets of services, and when Docker came along they began figuring ways to dev and test using Linux containers and various container management solutions.