A qualitative and quantitative analysis of container engines
Luciano Baresi,Giovanni Quattrocchi,Nicholas Rasi
DOI: https://doi.org/10.1016/j.jss.2024.111965
IF: 3.5
2024-01-07
Journal of Systems and Software
Abstract:Containerization is a virtualization technique that allows one to create and run executables consistently on any infrastructure. Compared to virtual machines, containers are lighter since they do not bundle a (guest) operating system but they share its kernel, and they only include the files, libraries, and dependencies that are required to properly execute a process. In the past few years, multiple container engines (i.e., tools for configuring, executing, and managing containers) have been developed ranging from some that are "general purpose", and mostly employed for Cloud executions, to others that are built for specific contexts, namely Internet of Things and High-Performance Computing. Given the importance of this technology for many practitioners and researchers, this paper analyses six state-of-the-art container engines and compares them through a comprehensive study of their characteristics and performance. The results are organized around 0 findings that aim to help the readers understand the differences among the technologies and help them choose the best approach for their needs. Editor's note: Open Science material was validated by the Journal of Systems and Software Open Science Board .
computer science, theory & methods, software engineering