Start your
Adventure
with Docker
WHY WE NEED DOCKER
WHY WE NEED DOCKER
When comes to deploy app in server
we have to install various resources or
packages for the app configuration.
On the other side you have another
team build a app under node js,
maybe you hire a freelancer who
would make app by php but another
version and so on …
If you install all of this requirement
in a single server high chances for
app crashes.
But on the other hand, your
developer might say it's all fault for
the person who has responsible for
deployment.
That’s where came
WHAT CAN IT DO
Docker is a tool designed to make it easier
to create, deploy, and run applications by
using containers. Containers allow a
developer to package up an application
with all of the parts it needs, such as
libraries and other dependencies, and
deploy it as one package.
WHAT CAN IT DO
By doing so, thanks to the container, the
developer can rest assured that the
application will run on any other Linux
machine regardless of any customized
settings that machine might have that
could differ from the machine used for
writing and testing the code.
Source: https://opensource.com/resources/what-docker
WHAT CAN IT DO
It's like a virtual machine but
really a virtual machine. Its
virtualize the application using
same kernel making isolated
environment.
How it can perform
OS
KERNEL
MACHINE 1
DOCKERIZE APP
Container 1 Container 2 Container 3 Container 4
DROP THE INSTANCE WHEN YOU DON'T
NEED IT
BUT I AM STILL CONFUSED
WHY I NEED THIS
Scenario 1
Maybe you have a which run php 5.5
and you have php 5.5 installed in your
system. Suddenly your supervisor asks
you to deploy a laravel 5.6 app which
supports php 7.1
But you can’t update php version your
existing might have stop working or your
apache lib might stop working.
BUT I AM STILL CONFUSED
WHY I NEED THIS
Scenario 2
Maybe your application is not working
with other application because both
application share same network
configuration, same port number etc
BUT I AM STILL CONFUSED
WHY I NEED THIS
Scenario 3
Maybe your DevOps team have little
knowledge about code or the platform
you used in your application.
BUT I AM STILL CONFUSED
WHY I NEED THIS
Scenario 4
Maybe DevOps team don't have that
much time for deploying app from
scratch.
BUT I AM STILL CONFUSED
WHY I NEED THIS
Above all of this problem scenario has
one solution and that is docker.
OS
KERNEL
OS
KERNEL
MACHINE 1 MACHINE 2
MULTIPLE DOCKERIZE
Q1. So it's more like Virtual
machine, right? If not what
is the difference between
docker and virtual
machine.
Ans. No, it's not like virtual
machine. Discussion in next
slide...
OS
KERNEL
MACHINE 1
VIRTUALIZE APP
KERNEL KERNEL KERNEL
OS OS OS OS
Size
Startup
Integration
Let’s begin
Basic Docker Command
https://labs.play-with-docker.com/
> docker
Basic
If you run docker
command. It will list all
necessary command
> docker run <image_name>
RUN
To start image it start with
docker run
> docker run ubuntu
Example
> docker run <image_name>:10
Version
Also specify the version of
the image
> docker run node:10
Example
> docker run -it <image_name>:10
I/O
You can use I/O by
specify the -it
> docker run -it ubuntu /bin/bash
Example
> docker run -p 8080:8000 <image_name>:10
Port mapping
You can use port
mapping by specify port
Local_port: Docker_port
> docker run -it ubuntu /bin/bash
Example
Volume mapping
You can map volume to source code to
container source code
> docker run -p 3306:3306 mysql -v opt/dataDir:/var/lib/mysql
Volume mapping
> docker run -d -p 8080:8000 <image_name>
Run app detach mode
You will run application in
background mode by using -d
> docker run -d -p 8080:8080 web_app
Example
> docker run <image_name> php artisan serve
Run command inside image
Run bash command after the
image name
> docker run web_app php artisan serve
Example
> docker run -h
Others option
You can get others command by
using --help after docker run
> docker run -h
Example
DOCKER FILE
What is docker file
It's like a instruction file for building
image. Like if want to deploy an app,
you have to run many bash
command to install package and
extensions.
It looks like this. Where all the instruction
written.
Also there have certain requirement for
write this file.
You can find this from HERE
Dockerfile
DOCKER COMPOSE
Docker Compose
By docker compose you can write
multiple services. Also you can easily
link one service to another service.
Learn more about docker compose
from here.
Also if confused about Docker
compose and Dockerfile Click here for
more detailed information.
LETS DEPLOY A APP USING
DOCKER
package.json
Make a package.json file
and add this code to
there.
{
"name": "docker_web_app",
"version": "1.0.0",
"description": "Node.js on Docker",
"author": "First Last",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.16.1"
}
}
server.js
Make a server.js file
and add this code
to there.
'use strict';
const express = require('express');
// Constants
const PORT = 8080;
const HOST = '0.0.0.0';
// App
const app = express();
app.get('/', (req, res) => {
res.send('Hello World');
});
app.listen(PORT, HOST);
console.log(`Running http://${HOST}:${PORT}`);
Dockerfile
Make a Dockerfile
file and add this
code to there.
FROM node:10
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json
AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install
# If you are building your code for production
# RUN npm ci --only=production
# Bundle app source
COPY . .
EXPOSE 8080
CMD [ "node", "server.js" ]
Build image
Build image by running this command
docker build -t node-web-app .
Build image
Run app detach mode with map port 49160
docker run -p 49160:8080 -d node-web-app node server.js
More useful link
● https://kodekloud.com/
● https://www.youtube.com/watch?v=wi-MGFhrad0&list=PLhW3qG5bs-L99pQsZ74f-LC-
tOEsBp2rK
● https://medium.com/free-code-camp/a-beginner-friendly-introduction-to-containers-vms-and-
docker-79a9e3e119b
● https://medium.com/@cramirez92/build-a-nodejs-cinema-microservice-and-deploying-it-with-
docker-part-1-7e28e25bfa8b
● https://docs.docker.com/get-started/
● https://www.youtube.com/watch?v=DgoKjlDteEA&list=PLea0WJq13cnDsF4MrbNaw3b4jI0GT9yKt
Thank You
#stayhome #staysafe

More Related Content

PDF
GitOps with ArgoCD
PDF
Hands-On Introduction to Kubernetes at LISA17
PPT
Jenkins Overview
PPTX
Introduction to Kubernetes
PPTX
CI/CD Best Practices for Your DevOps Journey
PDF
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
PDF
Introduction à DevOps
PPTX
Jenkins multibranch pipeline workshop sep 2018
GitOps with ArgoCD
Hands-On Introduction to Kubernetes at LISA17
Jenkins Overview
Introduction to Kubernetes
CI/CD Best Practices for Your DevOps Journey
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Introduction à DevOps
Jenkins multibranch pipeline workshop sep 2018

What's hot (20)

PDF
OpenShift 4 installation
PPTX
Jenkins tutorial
PDF
Introduction to Docker
PDF
Kubernetes University, Cap sur l’orchestration Docker
PDF
Kubernetes: A Short Introduction (2019)
PDF
An Introduction to Kubernetes
PDF
Jenkins
PDF
OpenShift-Technical-Overview.pdf
PPTX
Jenkins presentation
PPTX
Docker 101 : Introduction to Docker and Containers
PDF
eBPF - Observability In Deep
PDF
Hardening Kubernetes by Securing Pods
PPT
Docker introduction
PPTX
Docker intro
PDF
Deep Dive into Kubernetes - Part 1
PDF
Introduction to docker
PPTX
Docker introduction &amp; benefits
PPTX
Getting started with Docker
PDF
Docker Registry V2
OpenShift 4 installation
Jenkins tutorial
Introduction to Docker
Kubernetes University, Cap sur l’orchestration Docker
Kubernetes: A Short Introduction (2019)
An Introduction to Kubernetes
Jenkins
OpenShift-Technical-Overview.pdf
Jenkins presentation
Docker 101 : Introduction to Docker and Containers
eBPF - Observability In Deep
Hardening Kubernetes by Securing Pods
Docker introduction
Docker intro
Deep Dive into Kubernetes - Part 1
Introduction to docker
Docker introduction &amp; benefits
Getting started with Docker
Docker Registry V2
Ad

Similar to Start your adventure with docker (20)

ODP
DevAssistant, Docker and You
PDF
Docker workshop GDSC_CSSC
PDF
How to Dockerize, Automate the Build and Deployment Process for Flutter?
PPTX
Docker Basic to Advance
DOCX
Overview of Docker
PDF
Docker interview Questions-2.pdf
PPTX
8 good reasons to learn docker
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
PDF
Workshop Docker for DSpace
PDF
codemotion-docker-2014
PPTX
Setup docker on existing application
PDF
PDF
Docker intro
PDF
Docker 101
PDF
Docker For Windows | Setting Up Docker On Windows | Edureka
PPTX
Build Once, Run Anywhere: The Rise of Containerization in Modern IT
PDF
Building a Docker Container for Laravel.pdf
PDF
Docker for Developers
PDF
Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...
PDF
Dockerfiles building docker images automatically v (workdir, env, add, and ...
DevAssistant, Docker and You
Docker workshop GDSC_CSSC
How to Dockerize, Automate the Build and Deployment Process for Flutter?
Docker Basic to Advance
Overview of Docker
Docker interview Questions-2.pdf
8 good reasons to learn docker
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Workshop Docker for DSpace
codemotion-docker-2014
Setup docker on existing application
Docker intro
Docker 101
Docker For Windows | Setting Up Docker On Windows | Edureka
Build Once, Run Anywhere: The Rise of Containerization in Modern IT
Building a Docker Container for Laravel.pdf
Docker for Developers
Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...
Dockerfiles building docker images automatically v (workdir, env, add, and ...
Ad

Recently uploaded (20)

PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PDF
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
PDF
Flame analysis and combustion estimation using large language and vision assi...
PPTX
Benefits of Physical activity for teenagers.pptx
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPTX
Chapter 5: Probability Theory and Statistics
PDF
STKI Israel Market Study 2025 version august
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PPT
What is a Computer? Input Devices /output devices
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PPTX
TEXTILE technology diploma scope and career opportunities
PPTX
Modernising the Digital Integration Hub
PPTX
Configure Apache Mutual Authentication
PDF
A proposed approach for plagiarism detection in Myanmar Unicode text
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Five Habits of High-Impact Board Members
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
Consumable AI The What, Why & How for Small Teams.pdf
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
Flame analysis and combustion estimation using large language and vision assi...
Benefits of Physical activity for teenagers.pptx
Custom Battery Pack Design Considerations for Performance and Safety
Chapter 5: Probability Theory and Statistics
STKI Israel Market Study 2025 version august
Enhancing plagiarism detection using data pre-processing and machine learning...
What is a Computer? Input Devices /output devices
OpenACC and Open Hackathons Monthly Highlights July 2025
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Taming the Chaos: How to Turn Unstructured Data into Decisions
Credit Without Borders: AI and Financial Inclusion in Bangladesh
TEXTILE technology diploma scope and career opportunities
Modernising the Digital Integration Hub
Configure Apache Mutual Authentication
A proposed approach for plagiarism detection in Myanmar Unicode text
Zenith AI: Advanced Artificial Intelligence
Five Habits of High-Impact Board Members

Start your adventure with docker

  • 2. WHY WE NEED DOCKER
  • 3. WHY WE NEED DOCKER When comes to deploy app in server we have to install various resources or packages for the app configuration. On the other side you have another team build a app under node js, maybe you hire a freelancer who would make app by php but another version and so on …
  • 4. If you install all of this requirement in a single server high chances for app crashes. But on the other hand, your developer might say it's all fault for the person who has responsible for deployment.
  • 7. Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and deploy it as one package. WHAT CAN IT DO
  • 8. By doing so, thanks to the container, the developer can rest assured that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code. Source: https://opensource.com/resources/what-docker WHAT CAN IT DO
  • 9. It's like a virtual machine but really a virtual machine. Its virtualize the application using same kernel making isolated environment. How it can perform
  • 10. OS KERNEL MACHINE 1 DOCKERIZE APP Container 1 Container 2 Container 3 Container 4
  • 11. DROP THE INSTANCE WHEN YOU DON'T NEED IT
  • 12. BUT I AM STILL CONFUSED WHY I NEED THIS Scenario 1 Maybe you have a which run php 5.5 and you have php 5.5 installed in your system. Suddenly your supervisor asks you to deploy a laravel 5.6 app which supports php 7.1 But you can’t update php version your existing might have stop working or your apache lib might stop working.
  • 13. BUT I AM STILL CONFUSED WHY I NEED THIS Scenario 2 Maybe your application is not working with other application because both application share same network configuration, same port number etc
  • 14. BUT I AM STILL CONFUSED WHY I NEED THIS Scenario 3 Maybe your DevOps team have little knowledge about code or the platform you used in your application.
  • 15. BUT I AM STILL CONFUSED WHY I NEED THIS Scenario 4 Maybe DevOps team don't have that much time for deploying app from scratch.
  • 16. BUT I AM STILL CONFUSED WHY I NEED THIS Above all of this problem scenario has one solution and that is docker.
  • 18. Q1. So it's more like Virtual machine, right? If not what is the difference between docker and virtual machine. Ans. No, it's not like virtual machine. Discussion in next slide...
  • 19. OS KERNEL MACHINE 1 VIRTUALIZE APP KERNEL KERNEL KERNEL OS OS OS OS
  • 23. > docker Basic If you run docker command. It will list all necessary command
  • 24. > docker run <image_name> RUN To start image it start with docker run > docker run ubuntu Example
  • 25. > docker run <image_name>:10 Version Also specify the version of the image > docker run node:10 Example
  • 26. > docker run -it <image_name>:10 I/O You can use I/O by specify the -it > docker run -it ubuntu /bin/bash Example
  • 27. > docker run -p 8080:8000 <image_name>:10 Port mapping You can use port mapping by specify port Local_port: Docker_port > docker run -it ubuntu /bin/bash Example
  • 28. Volume mapping You can map volume to source code to container source code > docker run -p 3306:3306 mysql -v opt/dataDir:/var/lib/mysql
  • 30. > docker run -d -p 8080:8000 <image_name> Run app detach mode You will run application in background mode by using -d > docker run -d -p 8080:8080 web_app Example
  • 31. > docker run <image_name> php artisan serve Run command inside image Run bash command after the image name > docker run web_app php artisan serve Example
  • 32. > docker run -h Others option You can get others command by using --help after docker run > docker run -h Example
  • 35. It's like a instruction file for building image. Like if want to deploy an app, you have to run many bash command to install package and extensions.
  • 36. It looks like this. Where all the instruction written. Also there have certain requirement for write this file. You can find this from HERE Dockerfile
  • 38. Docker Compose By docker compose you can write multiple services. Also you can easily link one service to another service. Learn more about docker compose from here. Also if confused about Docker compose and Dockerfile Click here for more detailed information.
  • 39. LETS DEPLOY A APP USING DOCKER
  • 40. package.json Make a package.json file and add this code to there. { "name": "docker_web_app", "version": "1.0.0", "description": "Node.js on Docker", "author": "First Last", "main": "server.js", "scripts": { "start": "node server.js" }, "dependencies": { "express": "^4.16.1" } }
  • 41. server.js Make a server.js file and add this code to there. 'use strict'; const express = require('express'); // Constants const PORT = 8080; const HOST = '0.0.0.0'; // App const app = express(); app.get('/', (req, res) => { res.send('Hello World'); }); app.listen(PORT, HOST); console.log(`Running http://${HOST}:${PORT}`);
  • 42. Dockerfile Make a Dockerfile file and add this code to there. FROM node:10 # Create app directory WORKDIR /usr/src/app # Install app dependencies # A wildcard is used to ensure both package.json AND package-lock.json are copied # where available (npm@5+) COPY package*.json ./ RUN npm install # If you are building your code for production # RUN npm ci --only=production # Bundle app source COPY . . EXPOSE 8080 CMD [ "node", "server.js" ]
  • 43. Build image Build image by running this command docker build -t node-web-app .
  • 44. Build image Run app detach mode with map port 49160 docker run -p 49160:8080 -d node-web-app node server.js
  • 45. More useful link ● https://kodekloud.com/ ● https://www.youtube.com/watch?v=wi-MGFhrad0&list=PLhW3qG5bs-L99pQsZ74f-LC- tOEsBp2rK ● https://medium.com/free-code-camp/a-beginner-friendly-introduction-to-containers-vms-and- docker-79a9e3e119b ● https://medium.com/@cramirez92/build-a-nodejs-cinema-microservice-and-deploying-it-with- docker-part-1-7e28e25bfa8b ● https://docs.docker.com/get-started/ ● https://www.youtube.com/watch?v=DgoKjlDteEA&list=PLea0WJq13cnDsF4MrbNaw3b4jI0GT9yKt