Editor guide

Neither. A Docker container is not a service (at least, not in the cloud-hosted sense that the terms IaaS and PaaS refer to). A Docker container is analogous to a VM - it bundles all of the things your application needs to run. I would class it as an instance of your application.

Infrastructure (in the IaaS sense) generally refers to virtual hardware, storage, compute, or anything else that is used as part of a company's digital operations. Examples include Heroku, EC2, AWS Lambda, Netlify, Github, Dockerhub, Auth0, etc.

Afaik, a "platform" (in the Paas sense) is a service you build applications on top of. See apprenda.com/library/paas/paas-exa... for some examples. As far as I can tell, PaaS offerings bundle the capabilities of a number of underlying infrastructure services. They allow developers to offload the hassle of selecting and operating those infrastructure services by abstracting them all behind some sort of common interface. AWS Elastic Beanstalk comes to mind as a fairly good example.

This answer is kind of off-the-cuff, so if I've gotten anything wrong here, please feel free to let me know. However, I believe I have the general gist of the above right.


Ok. I first thought, containers IaaS, because containers are similar to VM and because VM is IaaS, containers also have to be IaaS. Thanks for your answer



However, I would point out that your above statement is incorrect: a single VM is absolutely NOT IaaS. It's just a VM. IaaS would be a web-based service that lets you provision containers or VMs.

For example, Heroku could be thought of as IaaS. A single container that is running on Heroku is NOT IaaS. It's just a container.

The -aaS terminology is just a marketing buzzword. It refers to commercial, cloud-based services that are run by a company for their customers. In the vast majority of cases, those customers are other businesses.