Thursday 12 October 2023

D01: Container Technology

 

Container Technology

What is a container?

A container refers to a typical software package that includes both the code and all the necessary components.

Container  ensures that the application operates consistently and efficiently across various computing environments.

 Containers offer a framework that enables the lightweight and unchanging packaging of application deployments.

 Within a container image, you'll find the code, runtime, system tools, system libraries, and configurations all bundled together.

 Linux Containers

A Linux container consists of isolated processes, powered by distinct images containing all required files for execution.

These containers are highly portable and maintain consistency as they transition through development, testing, and production stages.

Consequently, they offer faster and more efficient alternatives to traditional testing environments in development pipelines.

 WHY Linux?

To develop an application that can seamlessly work across different developer environments, pass quality assurance, and be deployed without extensive reworking, the solution is to use containers.

 Containers allow you to emulate various environments locally, matching specific configurations, libraries, and dependencies while avoiding the overhead of recreating server environments.

 This ensures consistency and portability throughout development and production, reducing the need for extensive troubleshooting and rewriting.

 Containers VS Virtualization 

Aspect

Virtual Machines

Containers

Technology

VMS are based on Virtualization technology

Containers are based  on containerization technology

Operating system

Include a complete operating system

Share the Host operating system

Resource Usage

Resource-intensive, consume more memory and storage

Lightweight, fewer resources being used

isolation

Strong Isolation between applications since each vms has its own OS

Efficient isolation but not as strong as VMS

Benefits of containers

Containers are a pathway to modernizing applications by decoupling them from their execution environments. This allows for faster and more efficient deployment across various environments. Containers package software and dependencies, ensuring consistency and reliability. The top benefits for businesses include increased agility and productivity, consistent application performance, improved scalability and infrastructure optimization, enhanced resilience, and high portability.

Docker is open-source software aimed at streamlining application development through isolated virtualized environments for building, deploying, and testing applications. While Docker is user-friendly, it introduces specific terms like Dockerfiles, images, containers, volumes, etc., which might be initially confusing for new users. Understanding these elements and their roles is crucial for a smoother learning process and efficient usage of Docker over time.

 Terminology

 

●A Dockerfile is a text document that contains instructions for building a Docker image.

Example of dockerfile for web server

Docker Hub: It is a cloud-based registry service for Docker images. It allows users to store, share, and deploy Docker images.

●A Docker container is a runnable instance of a Docker image.

●A Docker image is a lightweight, standalone, executable package of software that includes everything needed to run an application:

●A Docker volume is a directory or file that is shared between a Docker container and the host machine.

 


 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

No comments:

Post a Comment

G01:Client Server Architecture

  G01 Client Server Architecture A central server (host computer) serves as both the source of service requests and the destination for ...