This is the first part of a series of posts on
using Docker and containerization with .Net Core
Background
Docker, the technology which is
nothing but a tool designed to make it easier to create, deploy, and run
applications by using containers. A suite of command-line tools for creating, running, and sharing containers.
Containers in simple words are nothing but fast
light weight virtual machines (conceptually). Containers allow a developer to
package up an application with all of the parts it needs, such as libraries and
other dependencies, and ship it all out as one package. Containers offer
a logical packaging mechanism in which applications can be abstracted from the
environment in which they actually run. Available for both Linux- and
Windows-based applications.
Containers and Virtual Machine
We often get asked how Containers are different from Virtual Machine?
Are they same or is it VM++?
|
Virtual Machine vs Containers |
Containers and virtual machines are two ways to deploy multiple,
isolated services on a single platform. As we can see in the above figure if we
are running each an application in Virtual machine it needs to have its own
Operating system using hardware VM support. VMs are an infrastructure level construct
to turn one machine into many servers
The container’s system requires an underlying operating system that
provides the basic services to all of the containerized applications using
virtual-memory support for isolation. Containers are an app level
construct
Benefits of Containers
·
Reduced
IT management resources, less OS overhead with improved VM density
·
Reduced
size of snapshots (Lightweight)
·
Quicker
spinning up apps (Speed)
·
All
containers share the host OS
·
OS level
virtualization
·
Ability
to keep apps isolated not only from each other but also from their underlying
system
·
Portability
- You can readily move container-based apps from systems to cloud environments
or from developers’ laptops to servers if the target system supports Docker
· Containerized software will always run the same,
regardless of the infrastructure.
Containers run everywhere
Containers run anywhere, easing the development and deployment of
applications. Windows, Mac, Linux, datacenters, cloud and even IoT.
Use case for Containerisation
- Containers Enable Hybrid and Multi-Cloud Adoption
Once
containerized, applications can be deployed on any infrastructure – on virtual
machines, on bare metal, and on various public clouds running different
hypervisors.
- Containers save on VM licensing
- Better utilization of hardware resource if it’s
under utilized
- Reliability
from one computer environment to another
- Microservices model of application design
Comments
Post a Comment