Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
A comparative study of Docker and Vagrant regarding performance on machine level provisioning
Jönköping University, School of Engineering, JTH, Computer Science and Informatics.
Jönköping University, School of Engineering, JTH, Computer Science and Informatics.
2020 (English)Independent thesis Basic level (university diploma), 10 credits / 15 HE creditsStudent thesis
Abstract [en]

Software projects can nowadays have complex infrastructures behind them, in the form of libraries and various other dependencies which need to be installed on the machines they are being developed on. Setting up this infrastructure on a new machine manually can be a tedious process prone to errors. This can be avoided by automating the process using a software provisioning tool, which can automatically transfer infrastructure between machines based on instructions which can be version controlled in similar ways as the source code. Docker and Vagrant are two tools which can achieve this. Docker encapsulates projects into containers, while Vagrant handles automatic setup of virtual machines.

This study compares Docker and Vagrant regarding their performance for machine level provisioning, both when setting up an infrastructure for the first time on a new machine, as well as when implementing a change in the infrastructure configuration. This was done by provisioning a project using both tools, and performing experiments measuring the time taken for each tool to perform the tasks.

The results of the experiments were analyzed, and showed that Docker performed significantly better than Vagrant in both tests. However, due to limitations of the study, this cannot be assumed to be true for all use cases and scenarios, and performance is not the only factor to consider when choosing a provisioning tool. According to the data collected in this study, Docker is thereby the recommended tool to choose, but more research is needed to determine whether other test cases yield different results.

Abstract [sv]

Moderna mjukvaruprojekt kan ha en komplex infrastruktur bakom sig, i form av bibliotek och andra beroenden som måste installeras på utvecklarmaskiner. Att konfigurera denna infrastruktur på en ny maskin manuellt kan vara en tidskrävande process, som även kan leda till en ofullständigt eller felaktigt konfigurerad lösning. Detta kan undvikas genom att automatisera processen med hjälp av provisioneringsverktyg, som automatiskt kan överföra infrastrukturer mellan maskiner baserat på instruktioner som kan versionshanteras på liknande sätt som källkoden. Docker och Vagrant är två verktyg som kan användas till detta ändamål. Docker kapslar in projektet i containers, medan Vagrant hanterar automatisk konfiguration av virtuella maskiner.

Denna studie jämför Docker och Vagrant avseende deras prestanda för mjukvaruprovisionering på maskinnivå, både när det kommer till en förstagångsinstallation av infrastrukturen på en ny maskin, och även implementering av en ändring i konfigurationen av infrastrukturen. Denna jämförelse gjordes genom att implementera båda lösningarna, och sedan utföra experiment för att mäta tidsåtgången för båda verktygen att lösa de två uppgifterna.

Resultaten av experimenten analyserades, och visade att Docker presterade bättre än Vagrant i båda tester. På grund av begränsningar i studien kan detta inte antas vara sant för alla användningsområden och scenarier, och prestanda är inte den enda faktorn att ha i åtanke när ett provisioneringsverktyg ska väljas. Baserat på datan insamlad i denna studie är Docker därmed verktyget som rekommenderas, men mer forskning krävs för att avgöra om andra testområden ger andra resultat.

Place, publisher, year, edition, pages
2020. , p. 47
Keywords [en]
Docker, Vagrant, provisioning, DevOps, Infrastructure as Code, virtualization, containerization, software development
Keywords [sv]
Docker, Vagrant, provisionering, DevOps, infrastruktur som kod, virtualisering, inkapsling, mjukvaruutveckling
National Category
Computer Engineering
Identifiers
URN: urn:nbn:se:hj:diva-49552ISRN: JU-JTH-DTA-1-20200104OAI: oai:DiVA.org:hj-49552DiVA, id: diva2:1444178
External cooperation
OEM International AB
Subject / course
JTH, Computer Engineering
Supervisors
Examiners
Available from: 2020-07-28 Created: 2020-06-20 Last updated: 2025-10-13Bibliographically approved

Open Access in DiVA

fulltext(934 kB)1929 downloads
File information
File name FULLTEXT01.pdfFile size 934 kBChecksum SHA-512
f6fbff40b43ddffa5a4f5d5c3248ebcd729f7d74216146e2515bd47456e6ba5c36bfa946129e88af78fa2bdce4f0e3ad71b6665455a4d57bfcf5c10c68ad2e43
Type fulltextMimetype application/pdf

Search in DiVA

By author/editor
Zenk, ViktorMalmström, Martin
By organisation
JTH, Computer Science and Informatics
Computer Engineering

Search outside of DiVA

GoogleGoogle Scholar
Total: 1930 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 1298 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf