Overview of Virtualization, Containers and Docker [Dev Concepts #21]

In this short video, we will get familiar with the Virtualization concept and concepts like Container, Docker, and Cloud Platforms.

In this lesson, you will become familiar with: virtualization, containers, docker, and cloud platforms.
Have you ever wondered how to operate multiple Operating Systems on your computer? Thanks to virtualization, we can do that!

Virtualization is a relatively new technology that allows creating a completely isolated machine from scratch, all in software. Its dictionary definition is creating a virtual instance of an operating system, server, storage device, etc. In the IT industry, virtualization is running a virtual instance of a computer as a layer abstracted from the actual hardware.docker-image-vm

World-famous providers like Linux and other open-source cloud solutions define virtualization as a technology that lets you create IT services using resources traditionally bound to hardware. It allows you to use a physical machine’s full capacity by distributing its capabilities among many users or environments”.

Nowadays, companies are starting to prefer Docker. It s a tool that uses containers to make the creation, deployment, and running of applications a lot easier. It binds the application and its dependencies inside a container.

docker-logoBut what is the difference between Docker and virtual machines?

Docker is an example of virtualization, but with a few differences:

  • Containers share the same system resources and don’t have separated resources.
  • A Docker doesn’t have an OS inside.
  • It allows running multiple workloads on the same OS.

For example, if you have a 1 GB container image and want to use more than one virtual machine, you need to have 1 Gb multiplied by the numbers of the VM you want. If you use Docker, you can share the 1 GB between all the Docker containers.

In most real-life cases, your applications will have external dependencies, such as databases, message queues, or other external services that your application communicates to. You will need a reliable and easy-to-use way of bringing these dependencies into your development environment. Docker has a good solution for this called Docker Composer. It’s a tool for defining and running multi-container applications. That, combined with a cloud platform, will be the perfect solution.

A cloud platform is the operating and hardware system in a remote internet-based data center. It allows software and hardware products to co-exist remotely and at scale.



Overall, Virtual Machines are the most effective way to reduce IT expenses while boosting efficiency and agility for all-size businesses. Docker allows applications to be packaged with all the dependencies inside, which simplifies the deployment process quite a bit, and you get to have full reproducible environments.

Lesson Topics

In this video we review the following topics:
  • Virtualization and Cloud
  • Containers and Docker

Lesson Slides

Leave a Comment

Recent Posts

About SoftUni

SoftUni provides high-quality education, profession and job to people who want to learn coding.

The SoftUni Global “Learn to Code” Community supports learners with free learning resources, mentorship and community help.