CONTAINER FUNDAMENTALS

CONTAINER FUNDAMENTALS

A container is a unit of software that wraps an application code, runtime, system tools, system libraries, and dependencies, etc. Containers are built off Container images. 

Containers are just processes running in your system. Unlike a VM which provides hardware virtualization, a container provides operating-system-level virtualization by abstracting the “user space”.

Virtualization vs Containerization:

containers vs VMs

VMs run on top of a host machine using a hypervisor. The host machine provides the VMs with resources, including RAM and CPU.

The VM that is running on the host machine is also often called a “guest machine.” This guest machine contains an entire OS that has both the application and the system binaries/libraries it needs to run that application. It also has its own virtualized network adapters, storage, and CPU, RAM, etc.

Containers may look like a VM. For example, containers can execute commands as root, have a private network interface and an IP Address, allow custom firewall rules, can mount file systems, etc.

In the case of Containers, each container gets its own isolated userspace to allow multiple containers to run on a single host machine. Containers share the host system’s kernel with other containers. We can see that all the operating system level architecture is being shared across containers. The only parts that are created from scratch are the bins and libs. This is what makes containers so lightweight.

Benefits of Containers

  • Containers are lightweight: Containers require fewer system resources than traditional or hardware virtual machine environments because they don’t include operating system images.
  • Containers are portable: A container wraps up an application with everything it needs to run, like configuration files and dependencies. This enables you to easily and reliably run applications on different environments such as your local desktop, physical servers, virtual servers, and public or private clouds
  • Better resource utilization: Since containers do not require a separate operating system, they use up fewer resources. 
  • Faster Application Development: Containers allow applications to be more rapidly deployed, patched, or scaled.
  • Faster Deployment: Since containers wrap up an entire application and its dependencies, it is not dependant on the environment in which it was created thus making testing and debugging less complicated and less time-consuming
  • Supports modern development and architecture: Due to its low size, consistency, and portability, it is an ideal fit for modern development framework - DevOps, Serverless & Microservices.

Container Use Cases

  • IoT devices: Since container images are small portable packages and are very easy to install, update, and require minimal processing power, they are ideal for IoT devices. 
  • Containers as a Service ( CaaS ): Container engines, orchestration, and underlying computer resources delivered as a service through cloud vendors.
  • Microservices: Containers are used to decouple monolithic applications into reusable components by building container images.
  • DevOps support: Container technology supports streamlined build, test, and deployment from the same container images.
Sivakumar vaddi

Devops Lead Engineer at PDI| Cloud | Automation | Building High-Performing, Scalable Infrastructure | AWS, Jenkins, Terraform, Ansible

3 年

thanks for the detailed info

Sreejith Anujan

“To teach is to learn twice.” CNCF Ambassador, KCD Kerala and DevOpsDays Kerala Organizer RHCA, CKA, CKS, SAFe, CSM

4 年

Short and to the point Nived.

Gineesh Madapparambath

Author of Kubernetes and Ansible books, Automation and Containerization Explorer, techbeatly.com/youtube

4 年

Clear and Loud.. (Y)

Good one brother ?? keep going

Ompragash Viswanathan

Senior Software Engineer At Harness.io | Ex: Red Hat, Cloudera | Open Source & AI Enthusiast | Ansible

4 年

Good start Nived!

要查看或添加评论,请登录

Nived V.的更多文章

  • Plan your Migration from CentOS to RHEL

    Plan your Migration from CentOS to RHEL

    This article is intended to provide a framework which can be leveraged by your organisations to create your own…

    1 条评论
  • Kubernetes Security - Part I

    Kubernetes Security - Part I

    Complexity is the worst enemy of Security - Bruce Schneier Kubernetes is designed to be highly portable, with multiple…

    9 条评论
  • Fundamentals of Kubernetes Networking

    Fundamentals of Kubernetes Networking

    Understanding the Kubernetes Networking Model The Kubernetes Network Model specifies: Every Pod gets its own IP…

    33 条评论
  • Kubernetes - Chain of events behind a running Pod

    Kubernetes - Chain of events behind a running Pod

    What exactly happens behind the scenes when you create a pod/deployment? I'll try to cover the chain of events on a…

    6 条评论
  • Kubernetes Architecture

    Kubernetes Architecture

    CONTROL PLANE COMPONENTS: ETCD: Etcd is a fast, distributed, and consistent key-value store that is used as a backing…

    18 条评论
  • CONTAINER INTERNALS - Deep Dive

    CONTAINER INTERNALS - Deep Dive

    Linux technologies make up the foundations of building/running a container process in your system. Technologies like:…

    2 条评论
  • CONTAINER RUNTIMES - Deep Dive

    CONTAINER RUNTIMES - Deep Dive

    So what really happens in the backend when we pass the "docker run" command? If the image required by the container is…

    4 条评论
  • CONTAINER IMAGES - DEEP DIVE

    CONTAINER IMAGES - DEEP DIVE

    What is a Container Image: Container image contains your packaged application along with its dependencies and…

    12 条评论

社区洞察

其他会员也浏览了