Featured image of post What is Docker? Docker Container and Types of Virtualization

What is Docker? Docker Container and Types of Virtualization

Learn about Docker concepts, container virtualization technology, and the characteristics of various virtualization methods

docker
Docker is an open-source containerization platform that enables applications to run quickly and reliably across different computing environments by packaging code and dependencies.

đŸŗ What is Docker?

Docker’s core concepts are broadly divided into two: Container and Image

Docker Image

💡
A Docker Image is a lightweight, standalone software package that includes code, runtime, system tools, system libraries, and configurations necessary for running an application.

Real-World Example

If you were to install Jenkins on Linux using the traditional method:

$ sudo apt-get install jenkins

Running this command requires downloading multiple dependency packages together.

However, using Docker:

$ docker pull jenkins/jenkins:lts

You can download a pre-configured image containing all necessary components at once.


đŸ“Ļ Docker Registry & Docker Hub

â„šī¸
Docker Registry serves as a repository for sharing Docker images. Think of it as “GitHub for Docker.”

Docker Hub is the official Docker registry, providing official images from vendors.

Workflow

  1. Users download images from the registry
  2. Run images as containers
  3. Configure multiple isolated environments on a single computer

🔄 Container Virtualization

Containerized
✅
Container technology is “a server virtualization method that enables running multiple isolated instances within a single system,” where each container appears as an individual server to users.

Important Note: Containers are not exclusive to Docker. Various container technologies exist, including OpenVZ, Libvirt, and LXC.


đŸ–Ĩī¸ Types of Virtualization

1. Host Virtualization

Hosted Vitualization Architecture

Structure: Guest OS runs on top of Host OS through virtualization software.

  • Examples: VM Workstation, VMware Player, VirtualBox, etc.
📝

Advantages:

  • Simple installation and configuration
  • Minimal host requirements through hardware emulation

Disadvantages:

  • Resource-intensive due to running OS on top of OS
  • Significant performance overhead

2. Hypervisor Virtualization

HypervisorVirtualization

Structure: Software is installed and runs directly on hardware without a Host OS.

Two Approaches to Hypervisor Virtualization:

1) Full Virtualization

  • Guest OS accesses hardware through the hypervisor, not directly
  • More stable but has performance overhead

2) Paravirtualization

  • Guest OS directly accesses hardware through the hypervisor
  • Faster but requires OS modifications
📝

Advantages:

  • More efficient without Host OS
  • Better resource utilization

Disadvantages:

  • Slow startup time
  • Still consumes significant resources as each VM runs an independent OS

3. Container Virtualization ⭐

ContainerVirtualization

Structure: Applications share the host OS kernel while maintaining isolated environments.

📝

Advantages:

  • Lightweight: Typically tens of MB (VMs are tens of GB)
  • Fast startup: No need to boot a separate OS
  • Low resource usage: Efficient utilization of system resources
  • High density: Run more containers on the same hardware

Disadvantages:

  • Requires the same OS environment as the host system
  • Cross-platform deployment can be challenging (e.g., Linux containers require Linux host)

📊 Virtualization Comparison

CategoryHost VirtualizationHypervisor VirtualizationContainer Virtualization
SizeTens of GBTens of GBTens of MB
Startup SpeedSlowSlowVery Fast
Resource UsageHighMediumLow
Isolation LevelHighHighMedium
PortabilityLowMediumHigh
Setup DifficultyEasyHardMedium

💡 Summary

✅

Core Value of Docker Container Virtualization:

  1. Efficiency: Provides the same functionality with far fewer resources than traditional virtualization
  2. Speed: Start and stop applications in seconds
  3. Consistency: Runs identically across development, testing, and production environments
  4. Scalability: Easy to add or remove containers as needed

Docker is a core tool for modern application development and deployment, serving as the foundation for DevOps and microservices architecture.