Gaurav Doker
Gaurav Doker
Seventh Semester
B.E. (Computer Science and Engineering)
Guided by
Dr. N. M. Kandoi
2024-2025
CERTIFICATE
By
Seventh Semester
I take this opportunity to express my sincere gratitude to all those who have supported and guided
me throughout the completion of this seminar.
First and foremost, I would like to express my deep sense of gratitude to Dr. S. B. Somani, Principal
of Shri Sant Gajanan Maharaj College of Engineering, Shegaon, for providing me with the
opportunity to present this seminar and for the continuous encouragement throughout my academic
journey.
I am also profoundly thankful to Dr. J. M. Patil, Head of the Department of Computer Science and
Engineering, for their insightful suggestions, unwavering support, and for creating a conducive
environment that enabled me to successfully complete this seminar.
A special thanks to my seminar guide, Dr. N. M. Kandoi, Department of Computer Science and
Engineering, for their constant guidance, valuable feedback, and patient support throughout the
preparation and presentation of this seminar. Their expert advice and encouragement helped me at
every stage of this work.
I would also like to extend my heartfelt thanks to all the faculty members and staff members of the
Department of Computer Science and Engineering for their valuable insights and suggestions during
this seminar.
Lastly, I am grateful to my family, friends, and classmates for their continuous motivation, support,
and encouragement during the preparation of this seminar.
ABSTRACT
Cloud computing has transformed how we handle large amounts of data by using
clusters of standard computers. Container technology, especially Docker, has greatly
supported this change, which makes data processing secure and scalable. Docker
containers are essential for quickly scaling microservices, helping developers process
real-time data. This seminar will cover the basics of Docker and its impact on software
development. We will look at how Docker containers solve problems using different
programming languages, complex environment setups, and slow system deployments.
By using Docker, we can package systems, speed up deployment, and make operation
and maintenance easier. Additionally, we will discuss how Docker can work with
virtual machine services to increase efficiency, reduce costs, and simplify migration
and backups. This seminar will provide a clear overview of Docker's structure, design
ideas, and practical uses, showing how it is shaping the future of software development.
(ii)
Containerization with Docker: From Basics to Deployment
TABLE OF CONTENTS
(iii)
Containerization with Docker: From Basics to Deployment
LIST OF FIGURES
(iv)
Containerization with Docker: From Basics to Deployment
LIST OF TABLES
(v)
Containerization with Docker: From Basics to Deployment
1. INTRODUCTION
1.1 Overview
Cloud computing has completely changed how we manage and process large amounts
of data, allowing businesses to work faster and more efficiently. This has created new
challenges, like ensuring that systems can grow, stay secure, and operate smoothly. To
tackle these, container technology especially Docker has become a key tool in modern
software development.
Docker has evolved from just being a containerization tool to becoming the backbone
of many infrastructures. It is widely used with cloud-native principles, microservices
architecture, and DevOps practices, making it a crucial part of how companies build
and manage applications today. Its simplicity, portability, and speed make Docker ideal
for optimizing the entire software development lifecycle, from writing code to
deploying applications. Compared to traditional virtual machines, Docker containers
are lightweight and more efficient, which helps developers create, test, and deploy
applications much faster.
With Docker, organizations can focus on delivering high-quality software at scale with
minimal downtime. Since Docker allows multiple applications to run on the same
machine without causing conflicts, it reduces costs and improves how well resources
are used. This efficiency is especially valuable for businesses that need to quickly scale
their operations.
Docker also plays a key role in edge computing, where applications need to run
smoothly in distributed and resource-constrained environments [1]. Its ability to
package applications and run them efficiently in different environments makes Docker
perfect for edge computing, where devices and systems must operate with limited
resources and in varying conditions.
In this seminar, we will explore how Docker helps developers solve problems like
complex environment setups, slow deployments, and scaling services. By using Docker,
teams can create applications that run consistently on different systems, ensuring
smooth operations across development, testing, and production stages. The paper will
also cover Docker’s significant role in microservices architecture and how it works with
virtual machines to improve efficiency, reduce costs, and simplify tasks like system
migration and backups.
1.2 Background
The concept of containerization, while not new, has gained immense popularity through
Docker’s implementation. Before Docker, developers relied heavily on virtual machines
(VMs) to isolate applications from one another. Although VMs provided the necessary
isolation by running separate operating systems (OS) on a single host, they came with
significant overheads in terms of resource consumption and startup times [2]. Docker,
launched in 2013, revolutionized this approach by utilizing the host system's OS kernel,
creating containers that share resources efficiently while maintaining full isolation
between applications. This marked the beginning of a new era in application
deployment and lifecycle management.
Docker containers differ from traditional VMs in their lightweight nature. Unlike VMs,
which each require their own instance of an operating system, Docker containers share
the host OS, significantly reducing their footprint and allowing more containers to run
simultaneously on the same hardware [2]. This efficiency has led to the widespread
adoption of Docker in various industries, where it is used for everything from
developing small-scale applications to managing complex, distributed systems in the
cloud.
1.3 Aim
The aim of this study is to analyze how Docker’s containerization technology improves
software development and deployment. It focuses on Docker’s role in enhancing
consistency, scalability, and efficiency across environments, and its impact on modern
practices like microservices and CI/CD integration [5].
1.4 Objectives
1.5 Scope
The scope of the methodology for this seminar is broad, focusing on its use across
industries to modernize software development and deployment processes. It covers
Docker's architecture, emphasizing containers, images, and Dockerfiles, and how they
create isolated, consistent environments for running applications. The methodology also
highlights Docker’s integration with microservices architecture to support scalable,
modular application development. Agile practices are incorporated to enhance
flexibility and collaboration in Docker's development and lifecycle management.
Additionally, the study extends to Docker's role in optimizing resource usage in cloud
environments, including public, private, and hybrid clouds, offering cost-efficient
solutions. This methodology is applicable across sectors like healthcare, finance, and
gaming, prioritizing security, user-centric design, and innovation while staying in tune
with evolving container technologies.
The significance of this study lies in its comprehensive examination of Docker’s impact
on modern software development and deployment. By analyzing Docker’s architecture,
role in microservices, and integration with CI/CD pipelines, this study sheds light on
how Docker contributes to faster, more reliable, and scalable application development
[6].
2. LITERATURE SURVEY
3. Kubernetes and Docker International Journal of Innovative Load balancing in Kubernetes and Kubernetes provides more
Load Balancing: State-of- Research in Engineering and Docker Swarm, focusing on state-of- robust load balancing
the-Art Techniques and Management (IJIREM), December the-art techniques used for optimizing capabilities than Docker
Challenges 2023 traffic distribution in containerized Swarm.
environments.
4. Container Security in Cloud Engineering Proceedings. 2023, This paper examines container The integration of security
Environments: A 59, 57. https://doi.org/10.3390/ security risks, including measures such as container
Comprehensive Analysis and engproc2023059057 vulnerabilities in images, image scanning and runtime
misconfigurations, and runtime
Future Directions for security monitoring.
issues.
DevSecOps
5. A Docker-based Operation and Journal of Physics: Conference Docker containers to wrap Docker improves deployment
Maintenance Method for New- Series, Volume 2460, Article command and control system speed and simplifies
Generation Command and 012173, International subsystems, addressing issues maintenance.
Control Systems Symposium on Advanced like different programming
Launch Technologies (ISALT languages and complex
2022) configurations.
6. Integration With Docker International Journal of This study conducts a systematic Docker container technologies
Container Technologies for Systems and Service- mapping process of 57 research studies significantly enhance the
Distributed and Microservices Oriented Engineering, on Docker containerization for deployment of distributed and
Applications: A State-of-the- Volume 12, Issue 1, 2022 deploying distributed microservices microservices applications.
Art Review applications.
7. A Multi-Containerized International Journal of The system implements a Fibonacci Docker and Kubernetes
Application using Docker Computer Applications sequence calculator using React, enhance deployment
Containers and Kubernetes (0975 – 8887) Volume 183 Node.js, Redis, and Postgres in efficiency and reliability,
Clusters – No. 44, December 2021 separate Docker containers. significantly reducing
downtime during scaling.
3. METHODOLOGY
1. React: A JavaScript library for building user interfaces. It serves as the frontend
for the resume generator, where users can input their resume details.
3. Nginx: A lightweight web server that will serve the production build of the React
application.
4. Docker: The primary containerization tool used to encapsulate the React app and
its associated services.
1. Literature Survey
a. Before implementing the system, a literature survey was conducted to explore best
practices for deploying React applications using Docker. Resources and tutorials from
online platforms, including documentation from Docker, React, and various open-
source communities, were gathered to inform the deployment strategy. This research
helped establish a clear understanding of the tools, methodologies, and challenges
related to containerization and service orchestration, ensuring an efficient and scalable
deployment process [7].
This methodology incorporates both practical implementation and research from online
sources, ensuring a robust and scalable system. By using Docker and Docker Compose,
the React-based resume generator application is containerized for efficient deployment,
testing, and scaling.
4. ANALYSIS
The application to be deployed will run as a single service in one container, and Docker
will manage the container using Docker Compose, a command-line tool for connecting
and managing containers. This approach allows for easy deployment, scalability, and
smooth updates, ensuring the app runs identically across different environments.
Docker simplifies maintenance and enables future scaling without disrupting the
system, making the architecture efficient and reliable for managing development and
production workflows.
The above figures depict the architecture of a container and VM. It is seen that Docker
eliminates the need for a hypervisor in creating new environments for application
development by using a Docker image.
Table 4.1 shows that the Docker container is vanilla, which includes only the necessary
bootable files for starting the system. Since these containers are vanilla flavored,
creating them is simple and fast. Containers can be considered lightweight VMs, but
they are not VMs.
From figure 4.2 above diagram, Docker client, Docker Daemon, and Registry are the
three main components of the Docker architecture. Docker client. Containers are Client-
Server applications, which means that Docker clients communicate with the Docker
servers which in turn execute all the tasks. The Docker client library comes with full
HTTP request/response capabilities for use (Turnbull, 2014). Docker client and daemon
can be run on the same host or can connect local Docker client to remote Docker
Daemon which is running on the remote host like AWS Server [3].
The proposed system architecture employs a Docker workflow for the React Resume
Generator Application. The architecture consists of various services, each organized
into its respective folder:
1. Client Folder: Contains the React application responsible for the user interface
and handling user inputs for resume details.
2. Worker Folder: Includes functions for processing and generating the structured
resume output based on user inputs.
3. Nginx Folder: Contains the Nginx web server, which serves the React
application and routes requests to the appropriate services.
Each folder has a Dockerfile that contains configuration settings for how its respective
container should behave. The Docker daemon, also known as the Docker server, allows
communication with Docker through the command-line interface (CLI). Docker
Compose is used to run multiple containers simultaneously, building each container and
pushing them to Docker Hub, a repository of public images that can be downloaded and
executed on any machine [6].
5. RESULT
3. Port Mapping: Proper port mappings were established to ensure that the application
is accessible. By default, Docker assigns IP addresses to the containers, which was
monitored through docker inspect to retrieve the relevant container IPs. 4. User Access:
Users could access the running application through a web browser, facilitating
immediate interaction with the React Resume Generator.
6. CONCLUSION
REFERENCES
[5] Y. Wei, "A Docker-based Operation and Maintenance Method for New-Generation
Command and Control Systems," Journal of Physics: Conference Series, vol. 2460,
article 012173, International Symposium on Advanced Launch Technologies (ISALT
2022), IOP Publishing, 2022.
[6] M. Tan, "Integration With Docker Container Technologies for Distributed and
Microservices Applications: A State-of-the-Art Review," International Journal of
Systems and Service-Oriented Engineering, vol. 12, no. 1, pp. 1-14, 2022.