SlideShare a Scribd company logo
1 of 44
Discussing the difference between
Docker containers and Virtual Machines
Bachelor seminar
Steven Grzbielok ■ 12th of August, 2016
About me
Steven Grzbielok
• Born in 1994, living in Ratingen
• 6th term Information Systems (B.Sc.)
• IT-Consultant for MT AG since 2014
• Primarly deals with UI-Design
and web development
Agenda
1. What is Docker and what benefits are
promised for the usage of Docker?
2.Comparison of an example: VM vs. Docker
3.Conclusion: Guidelines
1. What is Docker and what benefits
are promised for the usage of
Docker?
Motivation
Virtual machines are often called heavyweight
and slow.
Is Docker a promising alternative?
What are the differences between both
techniques?
Fundamentals
• Virtualization → Dividing a physical computer
into several virtual environments
• VM = large files and big processes
• Alternative: Linux containers
• Docker: Promised to be lightweight, open,
secure and scalable
Di Liu & Zhao, 2014, p. 475; Bui, 2015, p. 1; Pahl, 2015, pp. 24-25; Docker Inc., 2016h
What is a virtual machine?
Virtualization means the operation of system
components in an abstract environment that is
often detached from the hardware and the
operating system which is used as a host.
Scalability and portability
Hofer & Fischer, 2008, p. 970
Evolution of VMs
• First virtualization approach from IBM
(1960s/1970s) for dividing one physical
machine
• First language level approach by Sun to deliver
VMs with Java applications
• Microsoft developed virtualization techniques
for running Windows even on a Mac
• Popularity was gained through Vmware which
developed a simple workstation for the end
user
Douglis & Krieger, 2013, p. 6; Ruest & Ruest, 2009, pp. 24–26;
What is a VM?
• Abstract version of a complete computer
• Consists of
o A configuration file (amount of RAM, virtual disks)
o Hard drive files (virtual version of a physical hard drive)
o In-memory file (virtual version of the RAM) → saved when you
e.g. pause the VM
o VM state file (saves the state of the VM when pausing or
shutting down)
o Other OS specific files like logs
Ruest & Ruest, 2009, pp. 30–31
Virtualization models
Often free and easy to setup
→Used for starting a project
More efficient, but harder to setup
→Used for productive environments
Ruest & Ruest, 2009, pp. 33
What is a hypervisor?
• Small operating system that exists only for
partitioning resources → Virtualizes the
hardware
• Isolates VMs and blocks access attempts
between the VMs
• Hypervisor type 1: Runs directly on hardware
• Hypervisor type 2: Runs on top of a OS
Vogel, Koçogˇlu, & Berger, 2010, pp. 9–11; Ruest & Ruest, 2009, p. 39; Fox, 2012, p. 54
Downsides of VMs
• VM are heavyweight and inefficient compared
to a non-virtualized system
• Applications are not easily portable
• Slow in IT provisioning
Raj, Chelladhurai, & Singh, 2015, p. 2
Hypervisors
• Software
virtualization is
often used to start
a project
• Hardware
virtualization is
often used for
production
environments
Nagy, 2015; Ruest & Ruest, 2009, p. 39;Fox, 2012, p. 54
Hypervisor:
● Small OS that only exists to manage
the VMs
● Can run insteadof the host OS (type 1)
or on top of the host OS (type 2)
Architecture of container virtualization
• Contains only the
needed applications
and dependencies
• Container share the
same kernel with
other containers
• Benefits also from
the resource
isolation and
allocation like VMs
Di Liu & Zhao, 2014, p. 476; Bui, 2015, p. 2
Benefits of containers
• Virtualized hardware is slower than regular
ones
• The negative effects can be reduced by sharing
the same kernel → containers
• Container encapsulates single service (micro
service architecture)
• Container packages all neccessary components
• Communication through APIs
• Container platforms are e.g. Docker or Rocket
Nagy, 2015
Docker
• Used by famous companies like Ebay,
Spotify…
• Can only host containers from the same type
as the host OS
• Currently only Linux containers on a Linux
host
• Microsoft is developing the Docker support on
Windows Server 2016 to support Windows
containers
Raj, Chelladhurai, & Singh, 2015, p. 2; Bui, 2015, p. 2; Docker Inc., 2016b
Docker engine is driven by LXC
• Linux Containers (LXC): Package to control
user spaces
• Essential Feature:
Namespaces (implemented on kernel-level)
seperate the containers from the host OS
o PID: Process ID namespace
o IPC: Inter Process Communication namespacce
o MNT: Mount namespace
o UTS: Unix Timesharing System
o Networking namespace
Merkel, 2014; Di Liu & Zhao, 2014, p. 476
Other advantages of LXC
• Control groups isolate groups of processes
and make it possible to manage the resource
allocation between cgroups
• Union file sytem: Copy-on-write creates a copy
of the data on modification and changes the
current pointer to the right set of data after the
process
→ Especially useful for data that is shared by
multiple applications
Pahl, 2015, pp. 26-27; Anderson, 2015, p. 104; Joy, 2015, p. 344; Di Liu & Zhao, 2014, p. 476
Docker Hub: One of the reasons of the rapidly growing
community
• Cloud service to upload and share containers
• Upload for private or public usage
• Easy to „pull“ a container and use it or modify
it
• 320 Mio. downloads until beginning of 2015
• Prebuilt containers with software such as
Node.js, MongoDB, Wordpress or the Apache
web server
E N, Mulerickal, Paul, & Sastri, 2015, p. 697; Haydel et al., 2015, p. 366; Docker Inc., 2016c
2. Comparison of an example:
VM vs. Docker Containers
a “self-experiment”
Setup of the example
Host OS: Windows 10 Pro (64 Bit)
Guest OS: Linux Server (AMD64) 16.04
Notebook model: Dell Latitude E5550
CPU: Intel Core i5-5300U @ 2,30GHz (Turbo-Boost to 2,90 GHz)
RAM: 16 GB
VM VirtualBox 5.0.22
RAM: 2GB
CPU: 1 Core
Docker Docker for Windows 1.12.0-rc2-beta16 (build: 4760)
RAM: 2GB
CPU: 1 Core
Installation process
Virtual Machine Docker
• Possible hosts: x86/x64
systems
• Possible guests: Windows
(Server), Linux...
• Regular installation
process via an executable
file
• No Hyper-V support
• Simple and short
installation wizard
• Hosts: x64 systems
• Possible guests: Linux
• Hyper-V has to be
activated!
→ Docker activates it if
necessary. Restart has
to be done to complete
the installation
Build: General
Both systems offer the following options:
1. Use a prebuilt image/container (and adapt it to
your needs)
2. Build your own image/container
1. By hand
2. Scripted
Oracle, 2016a; VirtualBoxes, 2016; VirtualBoxImages.com, 2008
Prebuilt images
Virtual Machine Docker
• Prebuilt systems
downloadable from Oracle or
non-official repositories like
VirtualBoxes or
VirtualBoxImages
• Should not be used as a
production environment (only
for testing and development
purposes)
• Pull an image from the
Docker Hub (e.g. Docker pull
ubuntu)
Build your own image
Virtual Machine Docker
• By Hand → Create a new VM,
install the OS, install your
applications
• Scripted build process with
Vagrant and Puppet
• By hand → Pull a basic Linux
image and modify it until it
fits the requirements
• Scripted build process:
– Docker build for the
creation with a
Dockerfile
– Docker compose for
multi-container
applications
– Automated build with
Puppet
HashiCorp, 2016a; HashiCorp, 2016b; Heidi, 2013a; Heidi, 2013b; Docker Inc., 2016a; Docker Inc., 2016f; Docker Inc., 2016g; Mouat, 2016, p. 19
Build your own image
Virtual Machine Docker
• Deployment process:
Export VM from host 1 → Import VM
to host 2
• Export and import via the GUI of
VirtualBox
• Deployment process can take up to
one hour (depending on image size
and host performance)
• Continuous Integration with a
private VirtualBox cloud and the
Jenkins VirtualBox plugin
• Docker push to upload the image
to the Docker Hub (either private
or public repository)
→ Afterwards can be pulled from
every client
• CI is possible with the
integration of Docker, GitHub
and Jenkins to automatically
push and pull new builds
Oracle, 2010; Oracle, 2012, pp. 5–6; Jenkins-CI, 2013; Docker Inc., 2015; Docker Inc., 2016a
Run: CPU Benchmark¹
Virtual Machine
Goal: Fast execution of the process
Docker
(~0,57% slower)
¹ All benchmarks are done with Sysbench for Linux
Run: File IO Benchmark
Virtual Machine Docker
(~78,45% faster)
Transfer of a 50GB file
Run: MySQL Benchmark
Virtual Machine Docker
(~3,94% slower)
Transactional processes on 1.000.000 test records
Run: Conclusion
• Docker performs much better in the file IO
benchmark
• The VM was slightly better when it comes to
CPU and database performance
→ But the difference was very small, it could be
influenced by side effects
HowtoForge, 2016
3. Conclusion: Comparison based on
Quality Issues
• Architecture of a VM guarantees isolation.
Container isolation depends hardly on the used
virtualization platform (e.g. Docker)
• Docker manages the communication between
containers but the architecture is not 100% safe
against unwanted accesses
→ VM is more suitable for processing business
critical data
Security
Joy, 2015, p. 343
Performance
• Possible to run more virtual systems on a
single server with containers (-->share OS
kernel)
• Processing of Docker containers can be up to
three times faster but this depends on the
hardware that is related to the work that has to
be done → CPU processing is nearly the same,
hard drive access is much faster in Docker
containers
Joy, 2015, pp. 342-345;
Portability
• Docker containers only need around 200MB
while a VM needs around 8GB → Better
deployment with Docker containers
• Build, push and pull is done within a few
seconds or a few minutes with Docker
Containers, VMs need up to one hour
• Higher portability due to the better deployment
• Standardized host OS for Docker containers
• VMs are independend from their host OS
• VMs can be configured and used like a regular
computerSeo, Hwang, Moon, Kwon, & Kim, 2014, pp. 108-110; Dua, Raja, & Kakadia, p. 614
Scalability
• Startup of a container needs not much
resources and can be done in 10% of the time
that a VM needs → Better scalabilty
• Docker containers can be scaled up and down
22 times faster than VMs
Seo et al., 2014, p. 109; Joy, 2015, p. 345
Guidelines - When to use Docker,
when to use a VM
1. When the number of guest systems and their size
should be scalable (e.g. cloud).
2. When the performance of the virtual system is a critical
criterion (e.g. in cloud and PaaS scenarios).
3. When continuous integration should be easily used.
4. When fast deployment should be established and
portability e.g. for the development team is necessary.
5. When you wan to guarantee a standardized host OS for
your virtual system.
When to use Docker?
1. When processing business critical data and you want
full isolation wihtout root access on the host system
due to the architecture.
2. When the installation and configuration of additional
software should be easy even for inexperienced users.
3. When the VM should be independent of its host OS and
the virtualization platform.
When to use a VM?
Thanks for your attention!
A more specific talk “Boost your APEX deployment
with Docker” based on this research will be hold at
DOAG2016.
Bibliography (1/4)
Anderson, C. (2015). Docker. IEEE Software, 2015(15), 102–105.
Bui, T. (2015). Analysis of Docker Security. Retrieved from Aalto University School of Science website: http://arxiv.org/pdf/1501.02967v1
Di Liu, & Zhao, L. (2014). The Research and Implementation of Cloud Computing Platform based on Docker. In J. P. Li (Ed.), 2014 11th
International Computer Conference on Wavelet Active Media Technology and Information Processing (ICCWAMTIP). 19 - 21 Dec. 2014,
Chengdu, Sichuan Province, China (pp. 475–478). Piscataway, NJ: IEEE. Retrieved from
http://ieeexplore.ieee.org/servlet/opac?punumber=7063853
Docker Inc. Using Puppet. Retrieved from https://docs.docker.com/engine/admin/puppet/
Docker Inc. (2015). Building a Continuous Integration Pipeline with Docker.
Docker Inc. (2016a). Build your own images. Retrieved from https://docs.docker.com/engine/tutorials/dockerimages/
Docker Inc. (2016b). Docker and Microsoft: Build, Ship, Run with Docker and Microsoft. Retrieved from https://www.docker.com/microsoft
Docker Inc. (2016c). Docker Hub. Retrieved from https://hub.docker.com/explore/
Docker Inc. (2016d). Getting Started with Docker for Windows. Retrieved from https://docs.docker.com/docker-for-windows/
Docker Inc. (2016e). Overview of Docker Compose. Retrieved from https://docs.docker.com/compose/overview/
Docker Inc. (2016f). pull. Retrieved from https://docs.docker.com/engine/reference/commandline/pull/
Docker Inc. (2016g). Ubuntu: OFFICIAL REPOSITORY. Retrieved from https://hub.docker.com/_/ubuntu/
Docker Inc. (2016h). What is Docker?: Understand how Docker works and how you can use it. Retrieved from
https://www.docker.com/what-docker
Douglis, F., & Krieger, O. (2013). Virtualization. IEEE Internet Computing, 17(2), 6–9. doi:10.1109/MIC.2013.42
Bibliography (2/4)
Dua, R., Raja, A. R., & Kakadia, D. Virtualization vs Containerization to Support PaaS. In 2014 IEEE International Conference on Cloud
Engineering (IC2E) (pp. 610–614). doi:10.1109/IC2E.2014.41
E N, P., Mulerickal, J. P. Fr., Paul, B., & Sastri, Y. (2015). Evaluation of Docker containers based on hardware utilization. In 2015
International Conference on Control Communication & Computing India (ICCC) (pp. 697–700). IEEE.
doi:10.1109/ICCC.2015.7432984
Fox, D. (2012). Hypervisor. Datenschutz und Datensicherheit - DuD, 36(1), 54. doi:10.1007/s11623-012-0012-y
Github. (2016). akopytov/sysbench. Retrieved from https://github.com/akopytov/sysbench/
HashiCorp. Vagrant Documentation. Retrieved from https://www.vagrantup.com/docs/
HashiCorp. Why Vagrant? Retrieved from https://www.vagrantup.com/docs/why-vagrant/
Haydel, N., Madey, G., Gesing, S., Dakkak, A., Garcia de Gonzalo, S., Taylor, I., & Hwu, W.-m. W. (2015). Enhancing the Usability and
Utilization of Accelerated Architectures via Docker. In O. Rana & R. Buyya (Eds.), 2015 IEEE/ACM 8th International Conference on
Utility and Cloud Computing. UCC 2015 : proceedings : 7-10 December 2015, Limassol, Cyprus (pp. 361–367). Los Alamitos,
California: IEEE Computer Society, Conference Publishing Services.
Heidi, E. (2013a). A beginners guide to Vagrant - getting your portable development environment, part 1. Retrieved from
http://www.erikaheidi.com/blog/a-begginers-guide-to-vagrant-getting-your-portable-development-e
Heidi, E. (2013b). A beginners guide to Vagrant part 2 - Provisioning and Puppet. Retrieved from http://www.erikaheidi.com/blog/a-
beginners-guide-to-vagrant-part-2-provisioning-and-puppet
Hofer, P., & Fischer, P. (2008). Lexikon der Informatik (15th ed.): Springer.
HowtoForge. How To Benchmark Your System (CPU, File IO, MySQL) with sysbench. Retrieved from https://www.howtoforge.com/how-
to-benchmark-your-system-cpu-file-io-mysql-with-sysbench
Jenkins-CI. (2013). VirtualBox Plugin. Retrieved from https://wiki.jenkins-ci.org/display/JENKINS/VirtualBox+Plugin
Bibliography (3/4)
Joy, A. M. Prof. (2015). Performance Comparison Between Linux Containers and Virtual Machines. In IEEE (Ed.), International
Conference on Advances in Computer Engineering and Applications (ICACEA), 2015. 19 - 20 March 2015, Ghaziabad, India ;
conference proceeding (pp. 342–346). Piscataway, NJ: IEEE.
Merkel, D. (2014). Docker: Lightweight Linux Containers for Consistent Development and Deployment. Retrieved from
http://dl.acm.org/citation.cfm?id=2600241
Mouat, A. (2016). Using docker: Developing and deploying software with containers (First edition). Beijing, Boston, Farnham: O´Reily.
Nagy, G. (2015). Operating System Containers vs. Application Containers. Retrieved from https://blog.risingstack.com/operating-system-
containers-vs-application-containers/
Oracle. Pre-Built Developer VMs. Retrieved from http://www.oracle.com/technetwork/community/developer-vm/index.html
Oracle. Welcome to VirtualBox.org. Retrieved from https://www.virtualbox.org
Oracle. (2010). Manual. Retrieved from https://www.virtualbox.org/manual/ch01.html
Oracle. (2012). Oracle VM VirtualBox Image SampleApp v107 Deployment Guide. Retrieved from
http://www.oracle.com/technetwork/middleware/bi/downloads/sampleapp107-vbimage-deployguide-453583.pdf
Pahl, C. (2015). Containerization and the PaaS Cloud. IEEE Cloud Computing, 2(3), 24–31. doi:10.1109/MCC.2015.51
Raj, P., Chelladhurai, J. S., & Singh, V. (2015). Learning Docker: Optimize the power of Docker to run your applications quickly and
easily. Community experience distelled. Birmingham, Mumbai: Packt Publishing.
Ruest, D., & Ruest, N. (2009). Virtualization: A beginner's guide ; [get details on the virtualization solutions from Citrix, Microsoft, and
VMware ; set up virtual servers, machines, desktops, and applications ; follow an easy, five-step deployment plan ; secure, back up,
and tune your virtual computing environment]. Network professional's library. New York: McGraw Hill.
Bibliography (4/4)
Seo, K.-T., Hwang, H.-S., Moon, I.-Y., Kwon, O.-Y., & Kim, B.-J. (2014). Performance Comparison Analysis of Linux Container and
Virtual Machine for Building Cloud. In : Advanced Science and Technology Letters, Networking and Communication 2014 (pp. 105–
111). Science & Engineering Research Support soCiety. doi:10.14257/astl.2014.66.25
VirtualBoxes. (2016). VirtualBoxes. Retrieved from https://virtualboxes.org/images/
VirtualBoxImages.com. (2008). VirtualBox Images. Retrieved from https://virtualboximages.com/
Vogel, R., Koçogˇlu, T., & Berger, T. (2010). Desktopvirtualisierung: Definitionen, Architekturen, Business-Nutzen (1. Aufl.). s.l.:
Vieweg+Teubner (GWV). Retrieved from http://gbv.eblib.com/patron/FullRecord.aspx?p=752014
Copyright
I do not own any of the used images. All rights are owned by Docker Inc. or the University Duisburg-Essen

More Related Content

What's hot

Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualization
Suresh Balla
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
 
Why Docker
Why DockerWhy Docker
Why Docker
dotCloud
 
Introduction to Containers - From Docker to Kubernetes and everything in between
Introduction to Containers - From Docker to Kubernetes and everything in betweenIntroduction to Containers - From Docker to Kubernetes and everything in between
Introduction to Containers - From Docker to Kubernetes and everything in between
All Things Open
 

What's hot (20)

Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualization
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific Trio
 
Introduction to container based virtualization with docker
Introduction to container based virtualization with dockerIntroduction to container based virtualization with docker
Introduction to container based virtualization with docker
 
Infinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container EnvironmentsInfinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container Environments
 
Why Docker
Why DockerWhy Docker
Why Docker
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using Docker
 
Introduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerIntroduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and Docker
 
Introduction to Containers - From Docker to Kubernetes and everything in between
Introduction to Containers - From Docker to Kubernetes and everything in betweenIntroduction to Containers - From Docker to Kubernetes and everything in between
Introduction to Containers - From Docker to Kubernetes and everything in between
 
Docker Container Introduction
Docker Container IntroductionDocker Container Introduction
Docker Container Introduction
 
Docker 101
Docker 101Docker 101
Docker 101
 
Virtual Container - Docker
Virtual Container - Docker Virtual Container - Docker
Virtual Container - Docker
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and Containers
 
Docker container a-brief_introduction_2016-01-30
Docker container a-brief_introduction_2016-01-30Docker container a-brief_introduction_2016-01-30
Docker container a-brief_introduction_2016-01-30
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 

Viewers also liked

Viewers also liked (20)

cert
certcert
cert
 
Performance Monitoring for Docker Environments - Docker Amsterdam June Meetup
Performance Monitoring for Docker Environments - Docker Amsterdam June MeetupPerformance Monitoring for Docker Environments - Docker Amsterdam June Meetup
Performance Monitoring for Docker Environments - Docker Amsterdam June Meetup
 
Writing Docker monitoring agent with Go
Writing Docker monitoring agent with GoWriting Docker monitoring agent with Go
Writing Docker monitoring agent with Go
 
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
 
Running Netflix OSS on Docker with Nirmata
Running Netflix OSS on Docker with NirmataRunning Netflix OSS on Docker with Nirmata
Running Netflix OSS on Docker with Nirmata
 
bed-con 2015 - From Virtual Machines to Containers
bed-con 2015 - From Virtual Machines to Containersbed-con 2015 - From Virtual Machines to Containers
bed-con 2015 - From Virtual Machines to Containers
 
Docker Indy Meetup Monitoring 30-Aug-2016
Docker Indy Meetup Monitoring 30-Aug-2016Docker Indy Meetup Monitoring 30-Aug-2016
Docker Indy Meetup Monitoring 30-Aug-2016
 
Netflix and Containers: Not A Stranger Thing
Netflix and Containers:  Not A Stranger ThingNetflix and Containers:  Not A Stranger Thing
Netflix and Containers: Not A Stranger Thing
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...
 
Microservices with Netflix OSS and Spring Cloud - Dev Day Orange
Microservices with Netflix OSS and Spring Cloud -  Dev Day OrangeMicroservices with Netflix OSS and Spring Cloud -  Dev Day Orange
Microservices with Netflix OSS and Spring Cloud - Dev Day Orange
 
Performance comparison between Linux Containers and Virtual Machines
Performance comparison between Linux Containers and Virtual MachinesPerformance comparison between Linux Containers and Virtual Machines
Performance comparison between Linux Containers and Virtual Machines
 
NetflixOSS and ZeroToDocker Talk
NetflixOSS and ZeroToDocker TalkNetflixOSS and ZeroToDocker Talk
NetflixOSS and ZeroToDocker Talk
 
Microservices with Spring Cloud, Netflix OSS and Kubernetes
Microservices with Spring Cloud, Netflix OSS and Kubernetes Microservices with Spring Cloud, Netflix OSS and Kubernetes
Microservices with Spring Cloud, Netflix OSS and Kubernetes
 
Microservices and APIs
Microservices and APIsMicroservices and APIs
Microservices and APIs
 
Real world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShiftReal world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShift
 
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
 
Learning the Alphabet: A/B, CD and [E-Z] in the Docker Datacenter by Brett Ti...
Learning the Alphabet: A/B, CD and [E-Z] in the Docker Datacenter by Brett Ti...Learning the Alphabet: A/B, CD and [E-Z] in the Docker Datacenter by Brett Ti...
Learning the Alphabet: A/B, CD and [E-Z] in the Docker Datacenter by Brett Ti...
 
Securing the Container Pipeline at Salesforce by Cem Gurkok
Securing the Container Pipeline at Salesforce by Cem Gurkok   Securing the Container Pipeline at Salesforce by Cem Gurkok
Securing the Container Pipeline at Salesforce by Cem Gurkok
 
Docker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott CoultonDocker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott Coulton
 

Similar to Discussing the difference between docker dontainers and virtual machines

Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
javaonfly
 
2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group
Todd Fritz
 

Similar to Discussing the difference between docker dontainers and virtual machines (20)

Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture material
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container worldDocker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container world
 
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep DiveDocker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
 
Docker handons-workshop-for-charity
Docker handons-workshop-for-charityDocker handons-workshop-for-charity
Docker handons-workshop-for-charity
 
2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group
 
Azure ai on premises with docker
Azure ai on premises with  dockerAzure ai on premises with  docker
Azure ai on premises with docker
 
Docker on Power Systems
Docker on Power SystemsDocker on Power Systems
Docker on Power Systems
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & Kubernetes
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web Developers
 
Docker Up and Running for Web Developers
Docker Up and Running for Web DevelopersDocker Up and Running for Web Developers
Docker Up and Running for Web Developers
 
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ....docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
 
Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
 
Docker slides
Docker slidesDocker slides
Docker slides
 
You, and Me, and Docker Makes Three
You, and Me, and Docker Makes ThreeYou, and Me, and Docker Makes Three
You, and Me, and Docker Makes Three
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...
 
.docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c....docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c...
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 

Recently uploaded (20)

AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
الأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهلهالأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهله
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 

Discussing the difference between docker dontainers and virtual machines

  • 1. Discussing the difference between Docker containers and Virtual Machines Bachelor seminar Steven Grzbielok ■ 12th of August, 2016
  • 2. About me Steven Grzbielok • Born in 1994, living in Ratingen • 6th term Information Systems (B.Sc.) • IT-Consultant for MT AG since 2014 • Primarly deals with UI-Design and web development
  • 3. Agenda 1. What is Docker and what benefits are promised for the usage of Docker? 2.Comparison of an example: VM vs. Docker 3.Conclusion: Guidelines
  • 4. 1. What is Docker and what benefits are promised for the usage of Docker?
  • 5. Motivation Virtual machines are often called heavyweight and slow. Is Docker a promising alternative? What are the differences between both techniques?
  • 6. Fundamentals • Virtualization → Dividing a physical computer into several virtual environments • VM = large files and big processes • Alternative: Linux containers • Docker: Promised to be lightweight, open, secure and scalable Di Liu & Zhao, 2014, p. 475; Bui, 2015, p. 1; Pahl, 2015, pp. 24-25; Docker Inc., 2016h
  • 7. What is a virtual machine? Virtualization means the operation of system components in an abstract environment that is often detached from the hardware and the operating system which is used as a host. Scalability and portability Hofer & Fischer, 2008, p. 970
  • 8. Evolution of VMs • First virtualization approach from IBM (1960s/1970s) for dividing one physical machine • First language level approach by Sun to deliver VMs with Java applications • Microsoft developed virtualization techniques for running Windows even on a Mac • Popularity was gained through Vmware which developed a simple workstation for the end user Douglis & Krieger, 2013, p. 6; Ruest & Ruest, 2009, pp. 24–26;
  • 9. What is a VM? • Abstract version of a complete computer • Consists of o A configuration file (amount of RAM, virtual disks) o Hard drive files (virtual version of a physical hard drive) o In-memory file (virtual version of the RAM) → saved when you e.g. pause the VM o VM state file (saves the state of the VM when pausing or shutting down) o Other OS specific files like logs Ruest & Ruest, 2009, pp. 30–31
  • 10. Virtualization models Often free and easy to setup →Used for starting a project More efficient, but harder to setup →Used for productive environments Ruest & Ruest, 2009, pp. 33
  • 11. What is a hypervisor? • Small operating system that exists only for partitioning resources → Virtualizes the hardware • Isolates VMs and blocks access attempts between the VMs • Hypervisor type 1: Runs directly on hardware • Hypervisor type 2: Runs on top of a OS Vogel, Koçogˇlu, & Berger, 2010, pp. 9–11; Ruest & Ruest, 2009, p. 39; Fox, 2012, p. 54
  • 12. Downsides of VMs • VM are heavyweight and inefficient compared to a non-virtualized system • Applications are not easily portable • Slow in IT provisioning Raj, Chelladhurai, & Singh, 2015, p. 2
  • 13. Hypervisors • Software virtualization is often used to start a project • Hardware virtualization is often used for production environments Nagy, 2015; Ruest & Ruest, 2009, p. 39;Fox, 2012, p. 54 Hypervisor: ● Small OS that only exists to manage the VMs ● Can run insteadof the host OS (type 1) or on top of the host OS (type 2)
  • 14. Architecture of container virtualization • Contains only the needed applications and dependencies • Container share the same kernel with other containers • Benefits also from the resource isolation and allocation like VMs Di Liu & Zhao, 2014, p. 476; Bui, 2015, p. 2
  • 15. Benefits of containers • Virtualized hardware is slower than regular ones • The negative effects can be reduced by sharing the same kernel → containers • Container encapsulates single service (micro service architecture) • Container packages all neccessary components • Communication through APIs • Container platforms are e.g. Docker or Rocket Nagy, 2015
  • 16. Docker • Used by famous companies like Ebay, Spotify… • Can only host containers from the same type as the host OS • Currently only Linux containers on a Linux host • Microsoft is developing the Docker support on Windows Server 2016 to support Windows containers Raj, Chelladhurai, & Singh, 2015, p. 2; Bui, 2015, p. 2; Docker Inc., 2016b
  • 17. Docker engine is driven by LXC • Linux Containers (LXC): Package to control user spaces • Essential Feature: Namespaces (implemented on kernel-level) seperate the containers from the host OS o PID: Process ID namespace o IPC: Inter Process Communication namespacce o MNT: Mount namespace o UTS: Unix Timesharing System o Networking namespace Merkel, 2014; Di Liu & Zhao, 2014, p. 476
  • 18. Other advantages of LXC • Control groups isolate groups of processes and make it possible to manage the resource allocation between cgroups • Union file sytem: Copy-on-write creates a copy of the data on modification and changes the current pointer to the right set of data after the process → Especially useful for data that is shared by multiple applications Pahl, 2015, pp. 26-27; Anderson, 2015, p. 104; Joy, 2015, p. 344; Di Liu & Zhao, 2014, p. 476
  • 19. Docker Hub: One of the reasons of the rapidly growing community • Cloud service to upload and share containers • Upload for private or public usage • Easy to „pull“ a container and use it or modify it • 320 Mio. downloads until beginning of 2015 • Prebuilt containers with software such as Node.js, MongoDB, Wordpress or the Apache web server E N, Mulerickal, Paul, & Sastri, 2015, p. 697; Haydel et al., 2015, p. 366; Docker Inc., 2016c
  • 20. 2. Comparison of an example: VM vs. Docker Containers a “self-experiment”
  • 21. Setup of the example Host OS: Windows 10 Pro (64 Bit) Guest OS: Linux Server (AMD64) 16.04 Notebook model: Dell Latitude E5550 CPU: Intel Core i5-5300U @ 2,30GHz (Turbo-Boost to 2,90 GHz) RAM: 16 GB VM VirtualBox 5.0.22 RAM: 2GB CPU: 1 Core Docker Docker for Windows 1.12.0-rc2-beta16 (build: 4760) RAM: 2GB CPU: 1 Core
  • 22. Installation process Virtual Machine Docker • Possible hosts: x86/x64 systems • Possible guests: Windows (Server), Linux... • Regular installation process via an executable file • No Hyper-V support • Simple and short installation wizard • Hosts: x64 systems • Possible guests: Linux • Hyper-V has to be activated! → Docker activates it if necessary. Restart has to be done to complete the installation
  • 23. Build: General Both systems offer the following options: 1. Use a prebuilt image/container (and adapt it to your needs) 2. Build your own image/container 1. By hand 2. Scripted Oracle, 2016a; VirtualBoxes, 2016; VirtualBoxImages.com, 2008
  • 24. Prebuilt images Virtual Machine Docker • Prebuilt systems downloadable from Oracle or non-official repositories like VirtualBoxes or VirtualBoxImages • Should not be used as a production environment (only for testing and development purposes) • Pull an image from the Docker Hub (e.g. Docker pull ubuntu)
  • 25. Build your own image Virtual Machine Docker • By Hand → Create a new VM, install the OS, install your applications • Scripted build process with Vagrant and Puppet • By hand → Pull a basic Linux image and modify it until it fits the requirements • Scripted build process: – Docker build for the creation with a Dockerfile – Docker compose for multi-container applications – Automated build with Puppet HashiCorp, 2016a; HashiCorp, 2016b; Heidi, 2013a; Heidi, 2013b; Docker Inc., 2016a; Docker Inc., 2016f; Docker Inc., 2016g; Mouat, 2016, p. 19
  • 26. Build your own image Virtual Machine Docker • Deployment process: Export VM from host 1 → Import VM to host 2 • Export and import via the GUI of VirtualBox • Deployment process can take up to one hour (depending on image size and host performance) • Continuous Integration with a private VirtualBox cloud and the Jenkins VirtualBox plugin • Docker push to upload the image to the Docker Hub (either private or public repository) → Afterwards can be pulled from every client • CI is possible with the integration of Docker, GitHub and Jenkins to automatically push and pull new builds Oracle, 2010; Oracle, 2012, pp. 5–6; Jenkins-CI, 2013; Docker Inc., 2015; Docker Inc., 2016a
  • 27. Run: CPU Benchmark¹ Virtual Machine Goal: Fast execution of the process Docker (~0,57% slower) ¹ All benchmarks are done with Sysbench for Linux
  • 28. Run: File IO Benchmark Virtual Machine Docker (~78,45% faster) Transfer of a 50GB file
  • 29. Run: MySQL Benchmark Virtual Machine Docker (~3,94% slower) Transactional processes on 1.000.000 test records
  • 30. Run: Conclusion • Docker performs much better in the file IO benchmark • The VM was slightly better when it comes to CPU and database performance → But the difference was very small, it could be influenced by side effects HowtoForge, 2016
  • 31. 3. Conclusion: Comparison based on Quality Issues
  • 32. • Architecture of a VM guarantees isolation. Container isolation depends hardly on the used virtualization platform (e.g. Docker) • Docker manages the communication between containers but the architecture is not 100% safe against unwanted accesses → VM is more suitable for processing business critical data Security Joy, 2015, p. 343
  • 33. Performance • Possible to run more virtual systems on a single server with containers (-->share OS kernel) • Processing of Docker containers can be up to three times faster but this depends on the hardware that is related to the work that has to be done → CPU processing is nearly the same, hard drive access is much faster in Docker containers Joy, 2015, pp. 342-345;
  • 34. Portability • Docker containers only need around 200MB while a VM needs around 8GB → Better deployment with Docker containers • Build, push and pull is done within a few seconds or a few minutes with Docker Containers, VMs need up to one hour • Higher portability due to the better deployment • Standardized host OS for Docker containers • VMs are independend from their host OS • VMs can be configured and used like a regular computerSeo, Hwang, Moon, Kwon, & Kim, 2014, pp. 108-110; Dua, Raja, & Kakadia, p. 614
  • 35. Scalability • Startup of a container needs not much resources and can be done in 10% of the time that a VM needs → Better scalabilty • Docker containers can be scaled up and down 22 times faster than VMs Seo et al., 2014, p. 109; Joy, 2015, p. 345
  • 36. Guidelines - When to use Docker, when to use a VM
  • 37. 1. When the number of guest systems and their size should be scalable (e.g. cloud). 2. When the performance of the virtual system is a critical criterion (e.g. in cloud and PaaS scenarios). 3. When continuous integration should be easily used. 4. When fast deployment should be established and portability e.g. for the development team is necessary. 5. When you wan to guarantee a standardized host OS for your virtual system. When to use Docker?
  • 38. 1. When processing business critical data and you want full isolation wihtout root access on the host system due to the architecture. 2. When the installation and configuration of additional software should be easy even for inexperienced users. 3. When the VM should be independent of its host OS and the virtualization platform. When to use a VM?
  • 39. Thanks for your attention! A more specific talk “Boost your APEX deployment with Docker” based on this research will be hold at DOAG2016.
  • 40. Bibliography (1/4) Anderson, C. (2015). Docker. IEEE Software, 2015(15), 102–105. Bui, T. (2015). Analysis of Docker Security. Retrieved from Aalto University School of Science website: http://arxiv.org/pdf/1501.02967v1 Di Liu, & Zhao, L. (2014). The Research and Implementation of Cloud Computing Platform based on Docker. In J. P. Li (Ed.), 2014 11th International Computer Conference on Wavelet Active Media Technology and Information Processing (ICCWAMTIP). 19 - 21 Dec. 2014, Chengdu, Sichuan Province, China (pp. 475–478). Piscataway, NJ: IEEE. Retrieved from http://ieeexplore.ieee.org/servlet/opac?punumber=7063853 Docker Inc. Using Puppet. Retrieved from https://docs.docker.com/engine/admin/puppet/ Docker Inc. (2015). Building a Continuous Integration Pipeline with Docker. Docker Inc. (2016a). Build your own images. Retrieved from https://docs.docker.com/engine/tutorials/dockerimages/ Docker Inc. (2016b). Docker and Microsoft: Build, Ship, Run with Docker and Microsoft. Retrieved from https://www.docker.com/microsoft Docker Inc. (2016c). Docker Hub. Retrieved from https://hub.docker.com/explore/ Docker Inc. (2016d). Getting Started with Docker for Windows. Retrieved from https://docs.docker.com/docker-for-windows/ Docker Inc. (2016e). Overview of Docker Compose. Retrieved from https://docs.docker.com/compose/overview/ Docker Inc. (2016f). pull. Retrieved from https://docs.docker.com/engine/reference/commandline/pull/ Docker Inc. (2016g). Ubuntu: OFFICIAL REPOSITORY. Retrieved from https://hub.docker.com/_/ubuntu/ Docker Inc. (2016h). What is Docker?: Understand how Docker works and how you can use it. Retrieved from https://www.docker.com/what-docker Douglis, F., & Krieger, O. (2013). Virtualization. IEEE Internet Computing, 17(2), 6–9. doi:10.1109/MIC.2013.42
  • 41. Bibliography (2/4) Dua, R., Raja, A. R., & Kakadia, D. Virtualization vs Containerization to Support PaaS. In 2014 IEEE International Conference on Cloud Engineering (IC2E) (pp. 610–614). doi:10.1109/IC2E.2014.41 E N, P., Mulerickal, J. P. Fr., Paul, B., & Sastri, Y. (2015). Evaluation of Docker containers based on hardware utilization. In 2015 International Conference on Control Communication & Computing India (ICCC) (pp. 697–700). IEEE. doi:10.1109/ICCC.2015.7432984 Fox, D. (2012). Hypervisor. Datenschutz und Datensicherheit - DuD, 36(1), 54. doi:10.1007/s11623-012-0012-y Github. (2016). akopytov/sysbench. Retrieved from https://github.com/akopytov/sysbench/ HashiCorp. Vagrant Documentation. Retrieved from https://www.vagrantup.com/docs/ HashiCorp. Why Vagrant? Retrieved from https://www.vagrantup.com/docs/why-vagrant/ Haydel, N., Madey, G., Gesing, S., Dakkak, A., Garcia de Gonzalo, S., Taylor, I., & Hwu, W.-m. W. (2015). Enhancing the Usability and Utilization of Accelerated Architectures via Docker. In O. Rana & R. Buyya (Eds.), 2015 IEEE/ACM 8th International Conference on Utility and Cloud Computing. UCC 2015 : proceedings : 7-10 December 2015, Limassol, Cyprus (pp. 361–367). Los Alamitos, California: IEEE Computer Society, Conference Publishing Services. Heidi, E. (2013a). A beginners guide to Vagrant - getting your portable development environment, part 1. Retrieved from http://www.erikaheidi.com/blog/a-begginers-guide-to-vagrant-getting-your-portable-development-e Heidi, E. (2013b). A beginners guide to Vagrant part 2 - Provisioning and Puppet. Retrieved from http://www.erikaheidi.com/blog/a- beginners-guide-to-vagrant-part-2-provisioning-and-puppet Hofer, P., & Fischer, P. (2008). Lexikon der Informatik (15th ed.): Springer. HowtoForge. How To Benchmark Your System (CPU, File IO, MySQL) with sysbench. Retrieved from https://www.howtoforge.com/how- to-benchmark-your-system-cpu-file-io-mysql-with-sysbench Jenkins-CI. (2013). VirtualBox Plugin. Retrieved from https://wiki.jenkins-ci.org/display/JENKINS/VirtualBox+Plugin
  • 42. Bibliography (3/4) Joy, A. M. Prof. (2015). Performance Comparison Between Linux Containers and Virtual Machines. In IEEE (Ed.), International Conference on Advances in Computer Engineering and Applications (ICACEA), 2015. 19 - 20 March 2015, Ghaziabad, India ; conference proceeding (pp. 342–346). Piscataway, NJ: IEEE. Merkel, D. (2014). Docker: Lightweight Linux Containers for Consistent Development and Deployment. Retrieved from http://dl.acm.org/citation.cfm?id=2600241 Mouat, A. (2016). Using docker: Developing and deploying software with containers (First edition). Beijing, Boston, Farnham: O´Reily. Nagy, G. (2015). Operating System Containers vs. Application Containers. Retrieved from https://blog.risingstack.com/operating-system- containers-vs-application-containers/ Oracle. Pre-Built Developer VMs. Retrieved from http://www.oracle.com/technetwork/community/developer-vm/index.html Oracle. Welcome to VirtualBox.org. Retrieved from https://www.virtualbox.org Oracle. (2010). Manual. Retrieved from https://www.virtualbox.org/manual/ch01.html Oracle. (2012). Oracle VM VirtualBox Image SampleApp v107 Deployment Guide. Retrieved from http://www.oracle.com/technetwork/middleware/bi/downloads/sampleapp107-vbimage-deployguide-453583.pdf Pahl, C. (2015). Containerization and the PaaS Cloud. IEEE Cloud Computing, 2(3), 24–31. doi:10.1109/MCC.2015.51 Raj, P., Chelladhurai, J. S., & Singh, V. (2015). Learning Docker: Optimize the power of Docker to run your applications quickly and easily. Community experience distelled. Birmingham, Mumbai: Packt Publishing. Ruest, D., & Ruest, N. (2009). Virtualization: A beginner's guide ; [get details on the virtualization solutions from Citrix, Microsoft, and VMware ; set up virtual servers, machines, desktops, and applications ; follow an easy, five-step deployment plan ; secure, back up, and tune your virtual computing environment]. Network professional's library. New York: McGraw Hill.
  • 43. Bibliography (4/4) Seo, K.-T., Hwang, H.-S., Moon, I.-Y., Kwon, O.-Y., & Kim, B.-J. (2014). Performance Comparison Analysis of Linux Container and Virtual Machine for Building Cloud. In : Advanced Science and Technology Letters, Networking and Communication 2014 (pp. 105– 111). Science & Engineering Research Support soCiety. doi:10.14257/astl.2014.66.25 VirtualBoxes. (2016). VirtualBoxes. Retrieved from https://virtualboxes.org/images/ VirtualBoxImages.com. (2008). VirtualBox Images. Retrieved from https://virtualboximages.com/ Vogel, R., Koçogˇlu, T., & Berger, T. (2010). Desktopvirtualisierung: Definitionen, Architekturen, Business-Nutzen (1. Aufl.). s.l.: Vieweg+Teubner (GWV). Retrieved from http://gbv.eblib.com/patron/FullRecord.aspx?p=752014
  • 44. Copyright I do not own any of the used images. All rights are owned by Docker Inc. or the University Duisburg-Essen