Containers

Virtualization is a technique of dividing resources of a computer into multiple execution environments. Virtualization can happen at hardware level or at OS Level. Containers are the latest trend in this space. Although the concept is very old, since unix days, this type of virtualization has picked momentum since Docker Inc introduced their technology.

What Are Containers?

Containers provide an isolated space to run a specific application or a set of applications utilizing the underlying Host OS through OS level virtualization. OS Level virtualization allows to run multiple applications “contained” in an isolated space and hence the name. Isolation also provides security.  It would be easy to confuse them with VM (virtual machines).

VMs host their own OS within themselves (Guest OS). They run on top of another OS (known as Host OS) and provide abstraction at hardware level. This guest OS could be different from host OS. They need to bundle all the dependent libraries and applications within and hence turnout to be bulky.

Containers use underlying host OS through OS level virtualization. All the containers running on a given machine need to use the same OS as that of host OS. They can share the libraries with underlying OS and hence turn out to be very lightweight.

Docker Inc. is a leading provider for in this space and has been doing that since 2014.

 

Containers VS VM
(Source: http://www.virtualizationsoftware.com)

As can be seen easily from above diagram, applications running in VM are very bulky as they need to have OS as well bundled with them. Whereas Containers are lightweight and hence multiple instances could be run on single Host OS.

Wikipedia Link:

Container a.k.a OS Level Virutalization

Reference Links:

Primar From Docker – https://www.docker.com/what-container

Comparison with VMs – https://blog.netapp.com/blogs/containers-vs-vms/

Related Keywords:

Virtualization, Hypervisor, Docker, VMWare, Cloud