DoctorNuke ยุคสังคมดิจิตัลเปลี่ยนผ่าน Artificial Intelligence (AI) talk , Website , Social and Programming Chat , SEO พูดคุยสนทนา … by DoctorNuke ( 1996)

Please or Register to create posts and topics.

Virtual Machine and Dockers , what's the difference?

Summary of difference: Docker vs. VM

 

Docker container

VM

What is it?

Docker is a software platform to create and run Docker containers. A Docker container is an emulation of a user-space instance, the part of the operating system where user processes run.

An emulation of a physical machine—including virtualized hardware—running an operating system.

Virtualization

Container abstracts operating system details from the application code.

VM abstracts hardware details from the application code.

Objective

Abstract hardware details and increase hardware utilization.

Improve application environment management and bring consistency across multiple environments.

Managed by

The Docker Engine coordinates between the operating system and Docker containers.

The hypervisor coordinates between the machine’s physical hardware and virtual machines.

Architecture

Shares resources with the underlying host kernel.

Runs its own kernel and operating system.

Resource sharing

On-demand.

A fixed amount, set in a virtual machine image’s configuration requirements.

When to use a virtual machine

It’s best to use a virtual machine if you’re running applications with these requirements: 

  • Operating system-specific dependencies
  • Substantial hardware resource requirements
  • A need to set various controls in operating systems
  • Legacy applications that no longer run on modern operating systems
  • Different operating system requirements with a single underlying physical infrastructure available

When to use Docker

It’s best to use Docker when you’re running applications with these requirements: 

  • Lightweight resource requirements or a microservice architecture
  • A distributed physical infrastructure environment, including cloud-based servers
  • Rapid deployment cycles (as Dockerfiles are easier to manage than VM configurations)
  • A rapid scalability requirement