Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Containers & Docker: Emerging Roles & Future of

Cloud Technology
Sachchidanand Singh Nirmala Singh
IBM Software Lab Tech Mahindra
Pune, India - 411 057 Pune, India - 411 057
Email: sach.success@gmail.com Email: nirmala.online@gmail.com

Abstract— Container-based virtualization uses single kernel System(OS). The biggest challenge in this model is to access
to run multiple instances on an operating system and hardware without virtualizing all drivers for the hardware
virtualization layer runs as an application within the operating beforehand but we can still uses paravirtualization as a
system. It is also called operating system virtualization and in workaround. In full virtualization scenario, all hardware
this approach, the kernel of operating system runs on the should be virtualized before it can be assigned to a VM which
hardware node with different isolated guest virtual machines will run a complete copy of the operating system.
(VMs) called containers. The Container-based virtualization uses a different
approach, here standard host operating system is at the base
The container-based virtualization doesn't require each and can be a Windows or Linux host when using Parallels
guest to run a completely installed operating system. This Virtuozzo virtualization. The virtualization layer is on top of
virtualization approach also helps to improve performance it and runs as an application within the operating system.
since there is a single operating system taking care of all
hardware calls. The disadvantage of container-based The virtualization layer offers a file system and kernel
service abstraction layer which isolates resources among all
virtualization is that each guest must use the same operating
virtual machines called "Containers" and it ensures that each
system the host uses.
container appears as a standalone server.[3]
In hypervisor-based virtualization the virtual machine is II. OS-LEVEL VIRTUALIZATION AND HYPERVISOR-BASED
not a complete operating system instance but its partial VIRTUALIZATION
instance of the operating system and hypervisor allows
The container-based virtualization does not use complete
multiple operating systems to share a single hardware host.
virtual machines and hence no overhead of running a
However in container-based virtualization, a kernel is run completely installed operating system. The advantage of this
approach is that there is no need to duplicate functionality like
with several different virtual machines installed on top of it.
hardware calls since there is just one operating system to take
The container-based virtualization is used in Linux
care of all hardware access.[1][10]
environments like Parallels Virtuozzo and open source
OpenVZ project. The performance problems related to hardware access by
means of driver virtualization can be avoided using Container-
This paper highlights the role of Container based based virtualization. But one limitation using containers is that
virtualization and Docker in shaping the future of Cloud there is no flexibility to virtualize different operating systems.
technology. The adoption of containers will continue to grow The container-based virtualization is also called OS level
and majority of Microservice applications will be built on the virtualization.
containers in the future. In hypervisor-based virtualization every virtual machine
(VM) needs a complete operating-system installation
Keywords—Containers, Cloud, Docker, Hypervisor, including a kernel which makes it massive but very flexible.
Virtualization, Windows Server Containers, Hyper-V
Every virtual machine has its own kernel and hypervisor
Containers, Bluemix, CoreOS, Kubernetes, Cloud Foundry,
Carina.
coordinates access to hardware. Therefore we can install any
operating system and these Operating Systems run in
I. INTRODUCTION completely isolated environments.[2]
Hypervisor based virtualization uses a thin kernel called In container-based virtualization all virtual machines uses
base layer which route instructions coming from virtual the same kernel and doesn't need a hypervisor. The container-
machines to the underlying hardware layer. The Windows based virtualization are used in Windows and Linux. The
Hyper-V uses a Microsoft kernel and Linux kernel is used by container based virtualization is suitable choice if optimal
VMware ESX Server. efficiency is priority and operating systems preference is less
important.[5]
The virtual machines (VMs) are created on top of the
hypervisor in the hypervisor based virtualization. Here virtual The hosting provider tries to use the same operating
machines (VMs) are completely installed Operating system for every virtual machine in order to simplify VM

978-1-5090-2399-8/16/$31.00 2016
c IEEE 804

Authorized licensed use limited to: Vilnius Gediminas Technical University. Downloaded on October 31,2022 at 13:53:02 UTC from IEEE Xplore. Restrictions apply.
maintenance since it's easy to update hundreds of virtual C. Optimal resource utilization
machines on a physical server with one Linux kernel patch. Docker allows to allocate and limit CPU, memory,
III. BENEFITS OF CONTAINER-BASED VIRTUALIZATION network and disk resources to all the process using Linux's
Control Groups. It ensures that one process is not taking over
Container-based virtualization improves performance all of the computer resources and starving the other
and efficiency compared to conventional hypervisor since processes.[20]
additional resources needed for each OS is eliminated. In
scenario when single operating system is required, the
container-based virtualization is best fit. D. Docker is growing
The Container-based virtualization uses a single kernel to Docker depends on Linux Containers (LXC), cgroups and
run multiple instances of an operating system and it does not namespaces capabilities which don't exist in Windows.
duplicate functionality. Each container instance runs in a Microsoft have its own container technology on Windows but
completely isolated secure environment. they are working on hooks to enable Docker containers to run
Container-based virtualization is more resource efficient on Windows Server.[6],[13],[15],[17]
since all applications runs on top of the same kernel and
instances are smaller and faster to create or migrate. It means a
single system can potentially host more containers than VMs E. Best fit for Microservices architecture
but it limits the flexibility and choice of your operating The Microservice architecture is supported by containers as
systems. And single OS creates situation of single point of each microservice can be deployed without interfering with
failure for all of the containers. For ex- a virus attack or crash other micro services. Containers provide suitable environment
of host OS can impact all of the containers. for service deployment in terms of speed, isolation and ease of
Containers are regarded as more resource efficient deployment of new versions.[20]
compared to VMs because the additional resources needed for
each OS is eliminated and instances are smaller and faster to F. Resource Utilization
create or migrate. Cloud service providers are more interested
in containers because far more container instances can be The containers are lightweight, portable, efficient and
deployed on same hardware investment. can run on physical servers. We can run more containers on a
physical servers than virtual machines which results in higher
IV. BENEFITS OF DOCKER CONTAINERS resource utilization. Containers consists of application code
Docker is a container technology which makes it easy along with its dependencies and runs as an isolated process
to package and distribute software along with its other sharing the kernel with other containers in the user space on
dependencies. It makes shipping of software code easy to the host operating system.[20]
staging or production or any other environment. Docker is V. DOCKER CONTAINER ARCHITECTURE
written in Go, an open source programming language created
in 2007 at Google by Robert Griesemer, Rob Pike, and Ken The Docker architecture currently leverage Linux
Thompson. Developer community is working aggressively on Containers(LXC) which have features like cgroups and
namespaces for resource control and strong process isolation
Docker API which have 15 revisions made so far in the past
etc. In addition Docker architecture could leverage Kernel-
1.5 years. based Virtual Machine(KVM) to do the same things.[6]
IBM is founding member of Open Container Platform
(OCP) formed by partners and users to create industry Linux Containers(LXC) is OS level virtualization to run
standards around container formats and runtime. IBM multiple isolated Linux systems on a single Linux control host
Containers are built on Bluemix which is a Platform-as-a- and it works as userspace interface for the Linux kernel
Service(PaaS) which provides efficient environment to enable containment features. Linux Containers(LXC) are based on
faster integration and access to big data, analytics and security chroot which contains binaries, libraries and configuration file
services. therefore called chroot jail and this approach allows for an
isolated environment on top of the kernel.[12]
A. Application Portability
Cgroups are groups of resources which can be created at
Docker puts all application dependencies in container which the Linux kernel level and can be assigned priorities therefore
is portable on different platforms. The distributed applications it can be ensured that each virtual machine have exactly only
can be built, move and run using containers. The application those resources which are actually required. It makes container
developers and administrators can run same application on based virtualization an efficient environment.
laptops, VMs or cloud by automating deployment inside
Container platforms from Cloud Foundry, Kubernetes and
containers.[14],[20]
CoreOS offer feasible virtualization alternatives but Docker
B. Docker is lightweight and fast containers have gained a lot of momentum and achieved hype
Containers are lightweight and fast compared to Virtual status. Companies like VMware, IBM and Microsoft are
Machine(VM) since VMs boot an entire operating system to working on to develop their container strategy on cloud.[4]
start and consume resource as each VM has to run a full OS Docker provides feasible and cheaper alternative to
instance. However starting a container is just like starting a hypervisor based virtual machines. It have two major
process.[7],[16] components- the open source containerization platform called
Docker and Docker Hub which is a Software-as-a-
Service(SaaS) platform to share and manage Docker

2nd International Conference on Applied and Theoretical Computing and Communication Technology (iCATccT) 805

Authorized licensed use limited to: Vilnius Gediminas Technical University. Downloaded on October 31,2022 at 13:53:02 UTC from IEEE Xplore. Restrictions apply.
containers. Docker uses a client server architecture model. The of APIs which can be built from templates or commands. It's
Docker client can talk to the Docker daemon which creates, possible to create container based systems on any OS which
run and distribute Docker containers. supports container like partitioning however Docker uses
Linux container tools. Hence Linux specific applications and
The Docker client and daemon can run on the same system components are run by Docker containers. Although Docker
or a Docker client can ccommunicate through sockets or can run in a VM hosted by a different OS but it requires a
RESTful API to a remote Docker daemon.[21] Linux guest OS within the VM to serve the containers.
Although Docker containers can run on a non-Linux host
OS but they are still limited to Linux applications and use of
Docker outside Linux hosts is complex. The Docker
containers hosted on Windows' servers can be valuable to
users having large Windows server requirements and wants to
add Linux-based applications.
Enterprises can host containers on public cloud VMs in the
data centers and available Docker tools can help to deploy
container-based components, support workflows and can
facilitate hybrid cloud use with easy failover support. The VM
based virtualization have the advantages of isolation which is
useful for public clouds.
VIII. CONTAINER TECHNOLOGY AND ROAD AHEAD
Fig. 1. Docker Architecture[21] The growing user interest and widespread adoption of
Docker daemon runs on a host machine and users interact Docker and container technology have forced legacy vendors
with daemon through Docker client. Docker client is primary to deliver their at least first container products but it needs to
user interface and its in the form of Docker binary. The role of be seen in long run how these technologies can smoothly
Docker client is to accept commands from users and integrate and meet the technical requirements of legacy
communicate bidirectional communication with Docker systems.[19]
daemon. VMware unveiled two open source offerings in 2015
Docker images are read-only templates and Docker named -'Project Lightwave' and 'Project Photon'. The Project
registries hold these images. And Docker containers are Lightwave focuses on identity and access management and
created from Docker image and it holds things needed to run Project Photon to manage containers and VMs on a single
an application. We can perform activities of run, start, stop, platform.[8]
move or delete on Docker containers and each container is an Bluemix is a cloud Platform as a Service (PaaS) offering
isolated and secure application platform.[21] developed by IBM. Bluemix is a hybrid cloud development
platform based on Cloud Foundry open technology and runs
on SoftLayer.
VI. MONOLITHIC VERSUS MICROSERVICES ARCHITECTURE Microsoft has promised to introduce Windows Server
In Monolithic architecture application is deployed as a Containers and Hyper-V Containers in upcoming Windows
single file or collection of files rooted at the same directory Server 2016. The Azure Container Service release by
and all the application code runs in the same process. Here we Microsoft helps larger IT shops to deploy and set up Apache
need to deploy multiple copies of the same application code to Mesos to cluster & schedule Docker applications across
multiple servers in order to achieve scaling. multiple virtual hosts.
The services defined in Monolithic architecture are There are several alternatives to VMware container
decomposed into individual services in the Microservices platform like Docker, Kubernetes, CoreOS and Cloud
architecture and are deployed individually on separate hosts. Foundry. The Project Photon of VMware will be shipped with
In Monolithic architecture gradually new features and services the Pivotal Cloud Foundry. The Open Container Project
are added to the application and over time the code base (OCP) will go a long way toward driving the IT industry to
becomes huge and complex. The Microservices architecture is top one or two container deployment methodologies which
designed to address this type of challenges. Each Microservice will functionally merge rest of all competing approaches.[11]
is meant for a specific business function and it defines the Already OCP is signed by VMware, Amazon Web Services,
operations necessary for that business function. A HP, IBM, Microsoft, Google, EMC and Red Hat etc.[9]
microservices architecture approach makes web based
development agile in the nature and easier to maintain the The Google's Kubernetes open source project, CoreOS's
code base. Docker is an enabler for a Microservices open source Rocket project and Docker Platform will
architecture and container based application deployment. contribute to future container administration and
management.[18]
VII. HOW CONTAINER TECHNOLOGY FITS IN THE CLOUD Containers provide a mechanism to improve efficiency
AND CHALLENGES through sharing of operating system binaries. This approach
Docker is a container management system which helps to improve host capacity and makes patch management
automates the process of creating containers to run easier since there are fewer operating systems to patch. A
applications or components. Containers are managed by a set

806 2nd International Conference on Applied and Theoretical Computing and Communication Technology (iCATccT)

Authorized licensed use limited to: Vilnius Gediminas Technical University. Downloaded on October 31,2022 at 13:53:02 UTC from IEEE Xplore. Restrictions apply.
container keeps the application binaries and configuration files [6] Why systemd Linux containers make sense-
http://searchservervirtualization.techtarget.com/tip/Why-systemd-Linux-
and stores the OS components which application modifies. containers-make-sense
[7] Docker leads the container technology charge in cloud-
Rackspace rolled out Carina in beta for free on the http://searchcloudcomputing.techtarget.com/feature/Docker-leads-the-
Rackspace Public Cloud in 2015. Carina is a container service container-technology-charge-in-cloud
used to simplify and speed deployments on cloud. It allows [8] VMware container platforms offer increased flexibility-
users to provision Docker Swarm clusters with native Docker http://searchvmware.techtarget.com/tip/VMware-container-platforms-
offer-increased-flexibility
APIs and create and deploy containerized applications. Intel is
[9] IBM hitches a ride on the Docker bandwagon-
supporting container as a service with its Cloud Integrity http://searchcloudcomputing.techtarget.com/news/2240236168/IBM-
Technology 3.0. The leading cloud providers like Amazon, hitches-a-ride-on-the-Docker-bandwagon
Microsoft, IBM and Google are adopting container and [10] Containers: Fundamental to the cloud's evolution-
supporting container as a service technology. http://www.zdnet.com/article/containers-fundamental-to-the-evolution-
of-the-cloud/
Containers as a service (CaaS) is a form of container-based [11] Docker 1.11 adopts Open Container Project components -
http://www.infoworld.com/article/3055966/open-source-tools/docker-
virtualization in which container engines, orchestration & 111-adopts-open-container-project-components.html
underlying compute resources are provided to users as a [12] Jails- http://www.freebsd.org/doc/en/books/handbook/jails.html
service. Most of the public cloud providers like Amazon Web [13] Virtual Machines Vs. Containers: A Matter Of Scope-
Services (AWS), IBM, Google, Rackspace and Joyent have http://www.networkcomputing.com/cloud-infrastructure/virtual-
some type of CaaS offering. machines-vs-containers-matter-scope/2039932943
[14] Can’t Contain(erize) the Hype – is Docker real or a bubble? -
The adoption of containers is expected to grow and http://robhirschfeld.com/2014/04/18/docker-real-or-hype/
majority of Microservice applications will be built on the [15] Infrastructure for container projects- https://linuxcontainers.org/
containers in the future. And existing cloud platforms will [16] Containers- Not Virtual Machine- Are the Future Cloud -
either switch to a new container stack or at least start http://www.linuxjournal.com/content/containers%E2%80%94not-
supporting containers. virtual-machines%E2%80%94are-future-cloud?page=0,1
[17] Containers Will Penetrate Large Cloud Platforms -
References [18]
https://dzone.com/articles/cloud-computing-the-sky-is-the-limit
Gartner Gives Thumbs Up To Docker Security-
[1] container-based virtualization (operating system-level virtualization) - http://www.informationweek.com/cloud/infrastructure-as-a-
http://searchservervirtualization.techtarget.com/definition/container- service/gartner-gives-thumbs-up-to-docker-security/d/d-id/1318612
based-virtualization-operating-system-level-virtualization [19] Amazon's Container Strategy, Examined-
[2] Making the case for container-based virtualization over hypervisors- http://www.informationweek.com/cloud/infrastructure-as-a-
http://searchservervirtualization.techtarget.com/tip/Making-the-case-for- service/amazons-container-strategy-examined/a/d-
container-based-virtualization-over-hypervisors id/1317515?itc=edit_in_body_cross
[3] Virtualization performance and container-based virtualization- [20] Microservices Architecture, Containers and Docker,
http://searchservervirtualization.techtarget.com/tip/Virtualization- https://www.ibm.com/developerworks/community/blogs/1ba56fe3-efad-
performance-and-container-based-virtualization 432f-a1ab-
[4] Virtualization Without The Hypervisor- 58ba3910b073/entry/microservices_architecture_containers_and_docker
http://docs.media.bitpipe.com/io_12x/io_128710/item_1261181/Virtuali ?lang=en
zation%20Without%20The%20Hypervisor_hb_final.pdf [21] Understand the architecture-
[5] Containers vs. VMs: What's the difference? https://docs.docker.com/engine/understanding-docker/
http://searchservervirtualization.techtarget.com/answer/Containers-vs-
VMs-Whats-the-difference

2nd International Conference on Applied and Theoretical Computing and Communication Technology (iCATccT) 807

Authorized licensed use limited to: Vilnius Gediminas Technical University. Downloaded on October 31,2022 at 13:53:02 UTC from IEEE Xplore. Restrictions apply.

You might also like