Screenshot of Podman Desktop showing a terminal of container
Podman is an example of container manager

In software engineering, containerization is operating-system-level virtualization or application-level virtualization over multiple resources so that software applications can run in isolated user spaces called containers in any cloud or non-cloud environment, regardless of type or vendor.[1] The term "container" has different meanings in different contexts, and it is important to ensure that the intended definition aligns with the audience's understanding.[2][3]

Usage

edit

Each container is basically a fully functional and portable cloud or non-cloud computing environment surrounding the application and keeping it independent of other environments running in parallel.[4] Individually, each container simulates a different software application and runs isolated processes[5] by bundling related configuration files, libraries and dependencies.[6] But, collectively, multiple containers share a common operating system kernel (OS).[7]

In recent times, containerization technology has been widely adopted by cloud computing platforms like Amazon Web Services, Microsoft Azure, Google Cloud Platform, and IBM Cloud.[8] Containerization has also been pursued by the U.S. Department of Defense as a way of more rapidly developing and fielding software updates, with first application in its F-22 air superiority fighter.[9]

History

edit

The concept of containerization in computing originated from early operating systemโ€“level isolation mechanisms. One of the earliest implementations was the chroot system call introduced in Version 7 Unix in 1979, which changed the apparent root directory for a process and its children, providing a basic form of filesystem isolation.[10]

In the early 2000s, more advanced forms of operating systemโ€“level virtualization were developed. FreeBSD introduced "jails" in 2000, which extended isolation by restricting processes to a subset of system resources. Around the same time, Solaris introduced "zones" (also known as Solaris Containers), providing similar capabilities with resource management and isolation features.

Linux later incorporated comparable functionality through kernel features such as namespaces and control groups (cgroups), which enabled isolation of process IDs, network stacks, filesystems, and resource allocation. These features formed the foundation for Linux Containers (LXC), which provided a userspace interface for managing containers.

The widespread adoption of containerization accelerated with the release of Docker in 2013, which introduced a standardized format for packaging applications and their dependencies, along with tooling for image distribution and container management.

Types of containers

edit
  • OS containers
  • Application containers

Security issues

edit
  • Because of the shared OS, security threats can affect the whole containerized system.
  • In containerized environments, security scanners generally protect the OS, but not the application containers, which adds unwanted vulnerability.

Container management, orchestration, clustering

edit

Container orchestration or container management is mostly used in the context of application containers.[11] Implementations providing such orchestration include Kubernetes and Docker swarm.

Container cluster management

edit

Container clusters need to be managed. This includes functionality to create a cluster, to upgrade the software or repair it, balance the load between existing instances, scale by starting or stopping instances to adapt to the number of users, to log activities and monitor produced logs or the application itself by querying sensors. Open-source implementations of such software include OKD and Rancher. Quite a number of companies provide container cluster management as a managed service, like Alibaba, Amazon, Google, and Microsoft.

See also

edit

Further reading

edit

Journal articles

edit
  • Bentaleb, Ouafa; Belloum, Adam S. Z.; Sebaa, Abderrazak; El-Maouhab, Aouaouche (8 June 2021). "Containerization technologies: taxonomies, applications and challenges". The Journal of Supercomputing. 78: 1144โ€“1181. doi:10.1007/s11227-021-03914-1. S2CIDย 236220833.
  • Moreau, David; Wiebels, Kristina; Boettiger, Carl (2023). Containers for computational reproducibility. Nature Reviews Methods Primers, 3 (50). https://doi.org/10.1038/s43586-023-00236-9
  • Watada, Junzo; Roy, Arunava; Kadikar, Ruturaj; Pham, Hoang; Xu, Bing (2019). "Emerging Trends, Techniques and Open Issues of Containerization: A Review". IEEE Access. 7: 152443โ€“152472. Bibcode:2019IEEEA...7o2443W. doi:10.1109/ACCESS.2019.2945930. S2CIDย 204970781.
  • van den Berg, Tom; Siegel, Barry; Cramp, Anthony (April 2017). "Containerization of high level architecture-based simulations: A case study". The Journal of Defense Modeling and Simulation: Applications, Methodology, Technology. 14 (2): 115โ€“138. doi:10.1177/1548512916662365. S2CIDย 64405143.
  • Zhang, Xiao; Tang, Yu; Li, Hao; Liu, Shaotao; Lin, Di (2021). "Containerization Design for Autonomous and Controllable Cloud Distributed System". Communications, Signal Processing, and Systems. Lecture Notes in Electrical Engineering. Vol.ย 654. pp.ย 30โ€“38. doi:10.1007/978-981-15-8411-4_4. ISBNย 978-981-15-8410-7. S2CIDย 236762442.
  • Odun-Ayo, Isaac; Geteloma, Victor; Eweoya, Ibukun; Ahuja, Ravin (2019). "Virtualization, Containerization, Composition, and Orchestration of Cloud Computing Services". Computational Science and Its Applications โ€“ ICCSA 2019. Lecture Notes in Computer Science. Vol.ย 11622. pp.ย 403โ€“417. doi:10.1007/978-3-030-24305-0_30. ISBNย 978-3-030-24304-3. S2CIDย 195769647.

Books

edit
  • Gabriel N. Schenker, Hideto Saito, Hui-Chuan Chloe Lee, Ke-Jou Carol Hsu, (2019) Getting Started with Containerization: Reduce the operational burden on your system by automating and managing your containers, Packt Publishing, ISBNย 978-1-83864-903-6
  • Jeeva S. Chelladhurai, Vinod Singh, Pethuru Raj (2014), Learning Docker, Packt Publishing, ISBNย 978-0-9888202-0-3

References

edit
  1. ^ Scheepers, Mathijs Jeroen (2014). "Virtualization and Containerization of Application Infrastructure: A Comparison" (PDF). thijs.ai. Thijs Scheepers. S2CIDย 18129086. Archived from the original (PDF) on 2024-09-28. Retrieved 2025-09-01.
  2. ^ Winn, Duncan C. E. (2017). Cloud Foundry: The Definitive Guide Develop, Deploy, and Scale. O'Reilly Media, Inc. ISBNย 9781491932544.
  3. ^ "Concepts: Containers". Kubernetes.io.
  4. ^ "What is containerization?". www.redhat.com. RedHat. Archived from the original on 2021-05-08. Retrieved 2021-07-10.
  5. ^ Hinck, Tim Maurer, Garrett; Hinck, Tim Maurer, Garrett. "Cloud Security: A Primer for Policymakers". Carnegie Endowment for International Peace. Retrieved 2021-07-10.{{cite web}}: CS1 maint: multiple names: authors list (link)
  6. ^ Rubens, Paul (2017-06-27). "What are containers and why do you need them?". CIO. Retrieved 2021-07-10.
  7. ^ "Containerization". www.ibm.com. Retrieved 2021-07-10.
  8. ^ December 2019, Jonas P. DeMuro 18 (18 December 2019). "What is container technology?". TechRadar India. Retrieved 2021-07-10.{{cite web}}: CS1 maint: numeric names: authors list (link)
  9. ^ "Flight Test Clears F-22 Fleet To Accept Third-Party Software". Aviation Week. 30 August 2022.
  10. ^ "chroot(2)". man.freebsd.org. Retrieved 2026-05-05.
  11. ^ "What is Container Orchestration? Definition & Related FAQs". Avi Networks. Retrieved 2024-04-29.

๐Ÿ“š Artikel Terkait di Wikipedia

High-performance computing

administration (including network and security knowledge), parallel computing and distributed computing into a multidisciplinary field that combines digital electronics

Container (disambiguation)

Container, in computing represents containerization (computing) as it pertains to software application deployment Container format (computing), for storing

Virtualization

consolidate compute power on multiple underutilized dedicated servers. The most visible hallmark of a return to the roots of computing is cloud computing, which

Open Container Initiative

The distribution-spec reached version 1.0.0 on April 26, 2021. Containerization (computing) "Docker and CoreOS unite to start the Open Container Project

Fedora Linux

available: personal computer, server and cloud computing. This was expanded to five editions for containerization and Internet of Things (IoT) as of the release

Unikernel

deploy a new unikernel with the desired changes. Microkernel Containerization (computing) Rump kernel IncludeOS "Unikernels: Rise of the Virtual Library

Cloud Native Computing Foundation

The Cloud Native Computing Foundation (CNCF) is a subsidiary of the Linux Foundation founded in 2015 to support cloud-native computing. It was announced

Just enough operating system

(JeOS software appliance with Kodi Media Center) Ubuntu JeOS Containerization (computing) (modern retake on JeOS) Krishnamurti, Srinivas (July 9, 2007)