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

Share on facebook
Share on twitter
Share on linkedin
In this short video, we will get familiar with the Virtualization concept.

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.

If you are new to programming, make sure to watch our Free Full Java Basics course! It will give you the necessary foundation to build upon and become a successful software engineer!

Lesson Topics

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

Remember that coding is a skill, which should be practiced. To learn to code, you should write code every day for a long time. Watching tutorials is not enough. You should code! 

We would love to hear from you, so leave a comment below saying what topics you would like to see next. 

Register now and take your free resources right away! You will become a member of the SoftUni Global Community and we will provide you the opportunity to communicate with other students and mentors and get help for FREE.

Leave a Comment

Scroll to Top

Sign in

Don’t have an account? Register with us to join the community.