Skip to main content
Top
Published in: Empirical Software Engineering 6/2021

01-11-2021

A study of how Docker Compose is used to compose multi-component systems

Authors: Md Hasan Ibrahim, Mohammed Sayagh, Ahmed E. Hassan

Published in: Empirical Software Engineering | Issue 6/2021

Log in

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

Many modern software applications are composed of several components (e.g., a web application is composed of a web server component and a database component). Each of these components can be instantiated as a container from a Docker image. Each Docker image corresponds to a software package (e.g, Apache or MySQL) along with various configuration details. Such containerization simplifies, speeds up, and enables the systematic deployment and maintenance of components at scale. As a natural progression of Docker, applications are now using “Docker Compose” to compose multi-component (aka. multi-container) applications by specifying the various components and their relations – in turn simplifying the deployment and maintenance of complex multi-component applications. This paper reports on a study of 4,103 open-source Github projects that use Docker Compose. Our primary goal is to better understand how it is used in the wild. We observe that over a quarter (26.8%) of the studied projects use Docker Compose for single-component applications. The Docker Compose file for an application is infrequently updated with 30% of such files never changed. We also observe that most of the composed applications leverage basic Docker Compose options instead of using advanced options (e.g., just 4.3% of the multi-component applications use a security related option). While Docker Compose has evolved over the years (it is currently at version 3), applications rarely adopt the new versions and 2.4% of the studied projects downgraded to an earlier version due to platform and option compatibility issues. Our study highlights that while applications are using Docker Compose, they appear to be content with its basic options and earlier versions in many instances. Future studies are needed to better understand how to improve the uptake of the more advanced aspects of Docker Compose, if they are needed at all.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Literature
go back to reference Agrawal R, Imieliński T, Swami A (1993) Mining association rules between sets of items in large databases. In: Sigmod Record, pp 207–216 Agrawal R, Imieliński T, Swami A (1993) Mining association rules between sets of items in large databases. In: Sigmod Record, pp 207–216
go back to reference Cito J, Schermann G, Wittern JE, Leitner P, Zumberi S, Gall HC (2017) An empirical analysis of the docker container ecosystem on github. In: 14th International conference on mining software repositories, pp 323–333 Cito J, Schermann G, Wittern JE, Leitner P, Zumberi S, Gall HC (2017) An empirical analysis of the docker container ecosystem on github. In: 14th International conference on mining software repositories, pp 323–333
go back to reference Gallaba K, McIntosh S (2018) Use and misuse of continuous integration features: An empirical study of projects that (mis)use travis ci. In: IEEE transactions on software engineering, pp 1–1 Gallaba K, McIntosh S (2018) Use and misuse of continuous integration features: An empirical study of projects that (mis)use travis ci. In: IEEE transactions on software engineering, pp 1–1
go back to reference Gousios G (2013) The ghtorrent dataset and tool suite. In: 10th Working conference on mining software repositories, pp 233–236 Gousios G (2013) The ghtorrent dataset and tool suite. In: 10th Working conference on mining software repositories, pp 233–236
go back to reference Henkel J, Bird C, Lahiri SK, Reps T (2020) Learning from, understanding, and supporting devops artifacts for docker. In: 2020 IEEE/ACM 42nd international conference on software engineering (ICSE), pp 38–49. IEEE Henkel J, Bird C, Lahiri SK, Reps T (2020) Learning from, understanding, and supporting devops artifacts for docker. In: 2020 IEEE/ACM 42nd international conference on software engineering (ICSE), pp 38–49. IEEE
go back to reference Horton E, Parnin C (2019) Dockerizeme: Automatic inference of environment dependencies for python code snippets. In: 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE), pp 328–338 Horton E, Parnin C (2019) Dockerizeme: Automatic inference of environment dependencies for python code snippets. In: 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE), pp 328–338
go back to reference Humble J, Farley D (2010) Continuous delivery: reliable software releases through build. In: Test, and Deployment Automation, pp. 2013–01 Humble J, Farley D (2010) Continuous delivery: reliable software releases through build. In: Test, and Deployment Automation, pp. 2013–01
go back to reference Muhtaroglu N, Kolcu B, Arı İ (2017) Testing performance of application containers in the cloud with hpc loads. In: 5th International conference on parallel, distributed, grid and cloud computing for engineering. Civil-Comp Muhtaroglu N, Kolcu B, Arı İ (2017) Testing performance of application containers in the cloud with hpc loads. In: 5th International conference on parallel, distributed, grid and cloud computing for engineering. Civil-Comp
go back to reference Shu R, Gu X, Enck W (2017) A study of security vulnerabilities on dockerhub. In: 7th ACM on conference on data and application security and privacy, pp 269–280 Shu R, Gu X, Enck W (2017) A study of security vulnerabilities on dockerhub. In: 7th ACM on conference on data and application security and privacy, pp 269–280
go back to reference Tak B, Kim H, Suneja S, Isci C, Kudva P (2018) Security analysis of container images using cloud analytics framework. In: Web Services, pp 116–133 Tak B, Kim H, Suneja S, Isci C, Kudva P (2018) Security analysis of container images using cloud analytics framework. In: Web Services, pp 116–133
go back to reference Zerouali A, Mens T, Robles G, Gonzalez-Barahona J M (2019) On the relation between outdated docker containers, severity vulnerabilities, and bugs. In: 26th International conference on software analysis, evolution and reengineering, pp 491–501 Zerouali A, Mens T, Robles G, Gonzalez-Barahona J M (2019) On the relation between outdated docker containers, severity vulnerabilities, and bugs. In: 26th International conference on software analysis, evolution and reengineering, pp 491–501
go back to reference Zhang Y, Wang H, Filkov V (2019) A clustering-based approach for mining dockerfile evolutionary trajectories. Sci China Inf Sci 62:19101:1–19101:3 Zhang Y, Wang H, Filkov V (2019) A clustering-based approach for mining dockerfile evolutionary trajectories. Sci China Inf Sci 62:19101:1–19101:3
go back to reference Zhang Y, Yin G, Wang T, Yu Y, Wang H (2018) An insight into the impact of dockerfile evolutionary trajectories on quality and latency. In: 42nd Annual computer software and applications conference, vol 01, pp 138–143 Zhang Y, Yin G, Wang T, Yu Y, Wang H (2018) An insight into the impact of dockerfile evolutionary trajectories on quality and latency. In: 42nd Annual computer software and applications conference, vol 01, pp 138–143
Metadata
Title
A study of how Docker Compose is used to compose multi-component systems
Authors
Md Hasan Ibrahim
Mohammed Sayagh
Ahmed E. Hassan
Publication date
01-11-2021
Publisher
Springer US
Published in
Empirical Software Engineering / Issue 6/2021
Print ISSN: 1382-3256
Electronic ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-021-10025-1

Other articles of this Issue 6/2021

Empirical Software Engineering 6/2021 Go to the issue

Premium Partner