SlideShare une entreprise Scribd logo
1  sur  46
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

Contenu connexe

Tendances

What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Simplilearn
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Simplilearn
 

Tendances (20)

Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
 
Docker
DockerDocker
Docker
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
docker installation and basics
docker installation and basicsdocker installation and basics
docker installation and basics
 
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefits
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]
 
Introduzione a Docker
Introduzione a DockerIntroduzione a Docker
Introduzione a Docker
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
 
Docker
DockerDocker
Docker
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 

Similaire à Start your adventure with docker

Similaire à Start your adventure with docker (20)

DevAssistant, Docker and You
DevAssistant, Docker and YouDevAssistant, Docker and You
DevAssistant, Docker and You
 
Docker workshop GDSC_CSSC
Docker workshop GDSC_CSSCDocker workshop GDSC_CSSC
Docker workshop GDSC_CSSC
 
How to Dockerize, Automate the Build and Deployment Process for Flutter?
How to Dockerize, Automate the Build and Deployment Process for Flutter?How to Dockerize, Automate the Build and Deployment Process for Flutter?
How to Dockerize, Automate the Build and Deployment Process for Flutter?
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to Advance
 
Overview of Docker
Overview of DockerOverview of Docker
Overview of Docker
 
Docker interview Questions-2.pdf
Docker interview Questions-2.pdfDocker interview Questions-2.pdf
Docker interview Questions-2.pdf
 
8 good reasons to learn docker
8 good reasons to learn docker8 good reasons to learn docker
8 good reasons to learn docker
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
Workshop Docker for DSpace
Workshop Docker for DSpaceWorkshop Docker for DSpace
Workshop Docker for DSpace
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Setup docker on existing application
Setup docker on existing applicationSetup docker on existing application
Setup docker on existing application
 
Docker @ Atlogys
Docker @ AtlogysDocker @ Atlogys
Docker @ Atlogys
 
Docker intro
Docker introDocker intro
Docker intro
 
Docker 101
Docker 101Docker 101
Docker 101
 
Docker For Windows | Setting Up Docker On Windows | Edureka
Docker For Windows | Setting Up Docker On Windows | EdurekaDocker For Windows | Setting Up Docker On Windows | Edureka
Docker For Windows | Setting Up Docker On Windows | Edureka
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...
Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...
Docker Networking | Container Network Model (CNM) | Docker Tutorial For Begin...
 
Dockerfiles building docker images automatically v (workdir, env, add, and ...
Dockerfiles   building docker images automatically v (workdir, env, add, and ...Dockerfiles   building docker images automatically v (workdir, env, add, and ...
Dockerfiles building docker images automatically v (workdir, env, add, and ...
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Domino on docker version 1
Domino on docker version 1Domino on docker version 1
Domino on docker version 1
 

Dernier

Dernier (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

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