Docker Architecture on a Physical Server vs. Virtual Machine Architecture

Docker Architecture on a Physical Server vs. Virtual Machine Architecture

·

2 min read

Traditional Virtualization Architecture with Docker on VMs

Description: In traditional virtualization, multiple virtual machines (VMs) run on a physical server using a hypervisor. Each VM includes a guest OS and can run Docker containers within it.

Layers Explanation:

  • Physical Server: The actual hardware resources (CPU, memory, storage, etc.).

  • Hypervisor: A layer that creates and manages VMs, allowing multiple OS instances to run on a single physical server.

  • VM (Virtual Machine): An emulation of a physical computer. Each VM runs its own guest OS.

  • Guest OS: The operating system running inside each VM.

  • Docker Engine: The Docker daemon running on the guest OS, managing containers.

  • Containers: Lightweight and portable execution environments that include everything needed to run a piece of software, except the OS.

Docker Architecture on a Physical Server

Description: Docker containers run directly on the host OS of the physical server, without the need for a hypervisor or VMs. This provides better performance and efficiency.

Layers Explanation:

  • Physical Server: The actual hardware resources (CPU, memory, storage, etc.).

  • Host OS: The operating system running directly on the physical server.

  • Docker Engine: The Docker daemon running on the host OS, managing containers.

  • Containers: Lightweight and portable execution environments that include everything needed to run a piece of software, sharing the host OS kernel, but isolated from each other.

Comparison:

  • Resource Efficiency:

    • Docker containers on a physical server share the host OS kernel, making them more lightweight and efficient compared to VMs which each have their own OS.
  • Performance:

    • Containers typically have better performance compared to VMs because there's no hypervisor overhead and they utilize fewer resources since they share the host OS kernel.
  • Isolation:

    • VMs provide stronger isolation as each VM includes its own OS, which can be an advantage for certain security requirements.

    • Containers provide isolation at the process level, which is generally sufficient for most applications but not as strong as VM isolation.

  • Boot Time:

    • Containers start much faster than VMs because they do not require a full OS boot.

Learning Resources for Docker:

  1. Official Documentation: