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 10 findings that aim to help the readers understand the differences among the technologies and help them choose the best approach for their needs.
翻译:与虚拟机器相比,集装箱较轻,因为它们没有捆绑一个(访客)操作系统,而是共享其内核,而且它们仅包括适当执行一个过程所需要的档案、图书馆和依赖性。在过去几年里,开发了多个集装箱引擎(即配置、执行和管理集装箱的工具),这些引擎主要用于“一般目的”和“云”处决,而其他则用于特定环境,即“物联网和高性能计算机”。鉴于这种技术对许多从业者和研究人员的重要性,本文分析了六种最先进的集装箱引擎,并通过对其特点和性能的全面研究加以比较。结果约为10项,旨在帮助读者了解技术之间的差异,帮助他们选择满足其需要的最佳方法。</s>