Containers vs. VMs

Welcome to Module 3. We will be talking about "Docker Containers." Containers versus VMs. The way virtual machines or VMs work, they virtualize, they abstract any hardware of infrastructure from the actual environment in which you are running your applications. And you can have multiple guest OSs, operations systems, and they would sit on top of a hypervisor. The hypervisor could be VMware, Xen, or any other technology. And the way VMs work, they require quite a lot of resources because for each of the VM, you would have to create a different guest OS.

Contrary to the VM, containers are very lightweight. They share a lot of resources via the Docker engine, via the container engine. They could sit in a VM or they can sit directly on the host operating system, OS. But the idea is that the containers are more lightweight and it takes just a few seconds to run a container versus a few minutes, or even longer when… as the case with the VM. The images are taken from, and Docker, it's a special type of a container technology. The most used, the most popular container technology. There are other container technologies as well.

Some of the benefits of Docker containers: Developers can develop their applications faster, they can deploy their applications faster. And when they develop and deploy, they have a very consistent environment and the containers are very portable across different environments, different OSs, different machines. Containers are extendable. You can collaborate and share them within the community or reuse some of the containers from the community, or within your company, or team. They are lightweight. There is no guest OS. They're easy for collaboration and the containers can be versioned and the components can be reused.