Skip to content

container

A container is a lightweight, standalone, and executable software package that includes everything needed to run a piece of software, including the code, runtime, system tools, libraries, and settings.^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]

Characteristics

Containers are similar to [[Virtual Machine]]s (VMs) in that they provide isolated environments for applications, but they utilize a more relaxed isolation mechanism.^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md] Unlike VMs, which each contain a full operating system, containers share the host operating system kernel.^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]

This architecture allows containers to be significantly more lightweight. Each container only requires the installation of the specific application and its dependencies, rather than a complete OS environment.^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md] Despite this shared kernel, each container maintains its own isolated filesystem, CPU allocation, memory, and process space.^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]

Benefits

The adoption of containerization provides several advantages over traditional deployment methods^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]:

  • Performance: Containers allow for rapid application startup and agile deployment.
  • Immutability: Using images ensures that the environment is consistent, allowing for simple rollbacks and reliable deployment.
  • Consistency: They guarantee a uniform environment across development, testing, and production, as well as across different operating systems.
  • Architecture: They facilitate a higher level of abstraction by supporting loosely coupled, distributed microservices, allowing applications to be broken down into smaller, manageable units rather than a monolithic structure.
  • Resource Management: Containers provide predictable performance through resource isolation and achieve high efficiency and density in hardware utilization.

Ecosystem

While platforms like [[Docker]] are commonly used to build and run individual containers, orchestration platforms like kubernetes are often employed to manage these containerized workloads at scale.^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]

Sources