Skip to main content
What is Docker? Docker Container and Types of Virtualization

What is Docker? Docker Container and Types of Virtualization

· loading · loading ·
gunyoung.Park
Author
gunyoung.Park
Always curious, always exploring new tech
Deep Dive into Docker - This article is part of a series.
Part 1: This Article
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.

Deep Dive into Docker - This article is part of a series.
Part 1: This Article