Visualizing shared Docker container image layers
Mäkipernaa, Joona (2022)
Mäkipernaa, Joona
2022
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2022-11-17
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202210257787
https://urn.fi/URN:NBN:fi:tuni-202210257787
Tiivistelmä
Containerization has become a popular method for software deployment and managing software resources, especially in cloud environments. Docker is one of the current leading container technologies. Many container technologies, including Docker, use layer-based container images. Knowing the principles and the benefits of layer-based container images is useful as it enables taking the full advantage of them. Sharing container image layers can, for example, improve the perceived performance of containerized applications, and reduce the maintenance costs of the applications.
The main goal of this thesis is to develop a visualization application that demonstrates the relationships between local Docker Linux container images, containers, and image layers. The developed application does this with a graph. The application also illustrates some benefits of layer sharing, both for Docker container images and containers. For container images, the developed application demonstrates the storage efficiency introduced by layer sharing. For containers, the application demonstrates the memory deduplication enabled by shared image layers and union filesystems. The application developed as a part of this thesis is intended for demonstrative and educational purposes.
The first parts of this thesis cover the principles of containerization, the basis of Linux containerization, the current containerization ecosystem, and the principles and the benefits of layer-based container images. The latter parts of the thesis cover the design and implementation of the developed application, and introduce the resulting application. Most of the information displayed in the application is obtained from the Docker API. The application also adapts the proportional set size memory metric for containers to demonstrate the memory deduplication enabled by the use of shared image layers.
The main goal of this thesis is to develop a visualization application that demonstrates the relationships between local Docker Linux container images, containers, and image layers. The developed application does this with a graph. The application also illustrates some benefits of layer sharing, both for Docker container images and containers. For container images, the developed application demonstrates the storage efficiency introduced by layer sharing. For containers, the application demonstrates the memory deduplication enabled by shared image layers and union filesystems. The application developed as a part of this thesis is intended for demonstrative and educational purposes.
The first parts of this thesis cover the principles of containerization, the basis of Linux containerization, the current containerization ecosystem, and the principles and the benefits of layer-based container images. The latter parts of the thesis cover the design and implementation of the developed application, and introduce the resulting application. Most of the information displayed in the application is obtained from the Docker API. The application also adapts the proportional set size memory metric for containers to demonstrate the memory deduplication enabled by the use of shared image layers.