SlideShare a Scribd company logo
Development and
delivery environment
using Docker
Presentation Agenda
Introduction to docker -
what, why etc.
Installation and Configuration
- DEV environment
Modifying Cellostics in DEV
and modifying Docker Image
Why we use Docker -
Benefits
How Docker Works
Installing and Running
Cellostics on Docker - DEV
environment
Deploying Cellostics Docker
Image (created from DEV) to
Production
Building Microservices in
Docker Image
Redeploying Docker Image in
prod with modification
Introduction to Docker - what?
What is Docker
● Open platform for developers and
sysadmins to build, ship, and run distributed
applications
● It is a lightweight container platform and it
is fast
● Available on most linux distros
● Also runs on windows and mac os
● Can run thousands of containers
Introduction to docker why, what?
Traditional VM vs. Docker
Hardware
Host OS
Hypervisor
RHEL
Bins/Libs
uniVerge
CentOS OS
Bins/Libs
Celloscope Cellostics
Bins/Libs
Guest OS
Docker Engine
Linux Kernel/Host OS
Hardware
Bins/Libs Bins/Libs Bins/Libs
uniVerge CellosticsCelloscope
VM Docker
The issue with traditional VM’s
Many different stacks
❏ Languages (Java, C#, Python, R)
❏ Frameworks (Angular, River, Spring)
❏ Databases (Postgres, Oracle, NoSQL) Many different targets
❏ Individual development environments
❏ Pre-production, QA, staging ….
❏ Production: on premises, cloud, hybrid
Deployment becomes very complex
Why Docker, its benefits
A Clean, Safe and portable runtime environment for Your App
No worries about missing dependencies, package and other pain points during
subsequent developments.
Run each app in its own isolated container, accumulated with various versions and
libraries and other dependencies for each app
Automate testing, integration, packaging, anything
you can script.
Reduce/Eliminate concerns about compatibility on
different platforms
Cheap, zero-penalty containers to deploy services.
A VM without the overhead of VM. Instant
replay and reset of image snapshot. That's the
It’s Fast and lightweight
Minimal overhead/resource
usage
Run thousands of containers
Easy to run your whole
production stack locally
Introduction to docker why, what, etc ?
VM
How docker works
Docker Client
Image 1Container 1
Container 2 Image 2
Image 3Container 3
Host Docker Registry
● Isolated Application
Platform
● Contains everything needed
to run your application
● Based on images
● Read Only Template used
to create containers
● Built by you or other
Docker users
● Stored in the Docker Hub
or your local Registry
Container Image
Installation and configuration
Images
Container
1-Pull
2-
run
3 - Stop, Start,
restart
4-Commit
5 - Push
build
Local Docker instance
Installation and configuration
1.Installing docker
> sudo apt-get install docker-engine # For Debian and Ubuntu
> sudo yum install docker-engine # For RHEL, CentOS,
Fedora
2. Starting docker service
> sudo systemctl start docker
3.Verify docker is installed correctly by running
> sudo docker run --rm hello-world
4. Installing Docker Image
> docker pull image_name
> docker images # Will show existing images
> docker ps -l # Will show all running container
Installation and configuration
5. Showing Docker network
> docker network inspect network_name
6. Kill all running container
> docker kill $(docker ps -q)
7. Deleting unused docker container
> sudo docker rm ‘docker ps --no-trunc -aq’
8. Delete all stopped containers (including data-only containers)
> docker rm $(docker ps -a -q)
9. Delete all 'untagged/dangling' (<none>) images
> docker rmi $(docker images -q -f dangling=true)
> docker volume is -f dangling=true
Installation and configuration
10. For connecting docker postgres console
> docker exec -ti testcellostics_db_1 psql -h db -U postgres
> docker run -it --rm --link db_ap:postgres postgres psql -h postgres -U postgres
> docker run --name auth_data -e POSTGRES_PASSWORD=mysecret -d postgres
> docker run -it --rm --link db_ap:postgres postgres psql -h postgres -U postgres
11. Giving an image a new name
> sudo docker tag <oldname> <newname>
Installing and running Cellostics on Docker dev environment
FROM python:3.5
ENV PYTHONUNBUFFERED 1
RUN mkdir /app
WORKDIR /app
ADD requirements.txt /app/
RUN pip install -r requirements.txt
ADD . /app/
Dockerfile
Installing and running on Docker dev environment
version: “2”
service
nginx:
image: "nginx:latest"
ports:
- "8080:8000"
volumes:
- "./src:/src"
- "./config/nginx:/etc/nginx/conf.d"
cellostics-server:
build: .
hostname: cellostics-server
command: bash -c "gunicorn project.wsgi:application -b 0.0.0.0:8000"
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- db
docker-compose.yml
Installing and running on Docker dev environment
db:
image: postgres:9.5
hostname: db
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=postgres
Docker-compose.yml (contd.)
Deploying Cellostics Docker image(created from Dev) to prod
1. Push the images to the docker hub
> docker push username/imagename:tag
2. Pull the image from docker hub or other sources
> docker login username
> docker pull image_name:tag
> docker images
> docker run image_name:tag
3. Run from configuration file (the directory where docker compose file located)
> docker-compose up
Modifying and redeploying image in production environment
1. Run the docker image which will run as a container
> docker run -it image_name command_to_execute
2. Modified container will save as image
> docker commit container_name image_name
3. Redeploying modified Image and run as a container
> docker run image_id
Building Microservice Application
Traditional Style Monolithic Architecture
UI
Backend
Other Service
User Reverse Proxy Application Server
RDBMS
Microservice Application using docker
Microservice Architecture
Container
Web Front end
DB
Container
Map Service
Container
Log Server
Container
Message client
Microservice Application using docker
● Each Service can be developed and upgraded independently
● Easier to developer for understand
● If one service goes down, then the application should still run,
although with the reduced functions
● Application is easier to troubleshoot and maintain
● The whole application doesn’t have to be committed to one
technology dependent stack
Implementation
❏ Create a Docker File
❏ Create a Docker Compose File
❏ Build Docker file
❏ Docker Compose File Up
❏ Restore data for Postgres docker container
❏ Create image for Nginx
❏ Docker Login
❏ Docker Push
Sources and references
http://slidedeck.io/lodelestra-edu/docker-slides
http://www.slideshare.net/dotCloud/why-docker
https://denibertovic.com/talks/supercharge-development-env-using-docker/#/12
https://docs.docker.com/engine/tutorials/dockerizing/
http://view.dckr.info:9090/#24
https://github.com/smancke/docker-intro
docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker
Any Questions?

More Related Content

What's hot

Docker by Example - Quiz
Docker by Example - QuizDocker by Example - Quiz
Docker by Example - Quiz
CodeOps Technologies LLP
 
Introducing Docker
Introducing DockerIntroducing Docker
Introducing Docker
Francesco Pantano
 
Docker containerization cookbook
Docker containerization cookbookDocker containerization cookbook
Docker containerization cookbook
Pascal Louis
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
양재동 코드랩
 
Austin - Container Days - Docker 101
Austin - Container Days - Docker 101Austin - Container Days - Docker 101
Austin - Container Days - Docker 101
Bill Maxwell
 
dockerizing web application
dockerizing web applicationdockerizing web application
dockerizing web application
Walid Ashraf
 
A Hands-on Introduction to Docker
A Hands-on Introduction to DockerA Hands-on Introduction to Docker
A Hands-on Introduction to Docker
CodeOps Technologies LLP
 
Introduction to docker security
Introduction to docker securityIntroduction to docker security
Introduction to docker security
Walid Ashraf
 
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
raccoony
 
Docker toolbox
Docker toolboxDocker toolbox
Docker toolbox
Yonghwee Kim
 
Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021
Alessandro Mignogna
 
Puppet and Vagrant in development
Puppet and Vagrant in developmentPuppet and Vagrant in development
Puppet and Vagrant in development
Adam Culp
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
Walid Ashraf
 
Podman rootless containers
Podman rootless containersPodman rootless containers
Podman rootless containers
Giuseppe Scrivano
 
Virtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
Virtual Meetup Docker + Arm: Building Multi-arch Apps with BuildxVirtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
Virtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
Docker, Inc.
 
The state of the swarm
The state of the swarmThe state of the swarm
The state of the swarm
Mathieu Buffenoir
 
Vagrant and docker
Vagrant and dockerVagrant and docker
Vagrant and docker
DuckDuckGo
 
Docker on openstack by OpenSource Consulting
Docker on openstack by OpenSource ConsultingDocker on openstack by OpenSource Consulting
Docker on openstack by OpenSource Consulting
Open Source Consulting
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and AgentRanjit Avasarala
 
Docker 101 - from 0 to Docker in 30 minutes
Docker 101 - from 0 to Docker in 30 minutesDocker 101 - from 0 to Docker in 30 minutes
Docker 101 - from 0 to Docker in 30 minutes
Luciano Fiandesio
 

What's hot (20)

Docker by Example - Quiz
Docker by Example - QuizDocker by Example - Quiz
Docker by Example - Quiz
 
Introducing Docker
Introducing DockerIntroducing Docker
Introducing Docker
 
Docker containerization cookbook
Docker containerization cookbookDocker containerization cookbook
Docker containerization cookbook
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
 
Austin - Container Days - Docker 101
Austin - Container Days - Docker 101Austin - Container Days - Docker 101
Austin - Container Days - Docker 101
 
dockerizing web application
dockerizing web applicationdockerizing web application
dockerizing web application
 
A Hands-on Introduction to Docker
A Hands-on Introduction to DockerA Hands-on Introduction to Docker
A Hands-on Introduction to Docker
 
Introduction to docker security
Introduction to docker securityIntroduction to docker security
Introduction to docker security
 
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
 
Docker toolbox
Docker toolboxDocker toolbox
Docker toolbox
 
Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021Primi passi con Docker - ItalianCoders - 12-01-2021
Primi passi con Docker - ItalianCoders - 12-01-2021
 
Puppet and Vagrant in development
Puppet and Vagrant in developmentPuppet and Vagrant in development
Puppet and Vagrant in development
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Podman rootless containers
Podman rootless containersPodman rootless containers
Podman rootless containers
 
Virtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
Virtual Meetup Docker + Arm: Building Multi-arch Apps with BuildxVirtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
Virtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
 
The state of the swarm
The state of the swarmThe state of the swarm
The state of the swarm
 
Vagrant and docker
Vagrant and dockerVagrant and docker
Vagrant and docker
 
Docker on openstack by OpenSource Consulting
Docker on openstack by OpenSource ConsultingDocker on openstack by OpenSource Consulting
Docker on openstack by OpenSource Consulting
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and Agent
 
Docker 101 - from 0 to Docker in 30 minutes
Docker 101 - from 0 to Docker in 30 minutesDocker 101 - from 0 to Docker in 30 minutes
Docker 101 - from 0 to Docker in 30 minutes
 

Similar to How to _docker

Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 aug
Vincent De Smet
 
Running the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerRunning the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker Container
Guido Schmutz
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with docker
Michelle Liu
 
Docker for developers z java
Docker for developers z javaDocker for developers z java
Docker for developers z java
andrzejsydor
 
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
Deploying .net core apps to Docker - dotnetConf Local BengaluruDeploying .net core apps to Docker - dotnetConf Local Bengaluru
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
Swaminathan Vetri
 
Docker
DockerDocker
Introduction To Docker
Introduction To  DockerIntroduction To  Docker
Introduction To Docker
Dr. Syed Hassan Amin
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
Taswar Bhatti
 
Docker
DockerDocker
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Development
msyukor
 
Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptx
IgnacioTamayo2
 
Docker
DockerDocker
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
Naukri.com
 
Docker
DockerDocker
Docker
Narato
 
Docker, LinuX Container
Docker, LinuX ContainerDocker, LinuX Container
Docker, LinuX Container
Araf Karsh Hamid
 
Docker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini AnandDocker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini Anand
PRIYADARSHINI ANAND
 
Docker 1.9 Workshop
Docker 1.9 WorkshopDocker 1.9 Workshop
Docker 1.9 Workshop
{code}
 
Setup docker on existing application
Setup docker on existing applicationSetup docker on existing application
Setup docker on existing application
Luc Juggery
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
Ruben Taelman
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
Patrick Chanezon
 

Similar to How to _docker (20)

Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 aug
 
Running the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerRunning the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker Container
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with docker
 
Docker for developers z java
Docker for developers z javaDocker for developers z java
Docker for developers z java
 
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
Deploying .net core apps to Docker - dotnetConf Local BengaluruDeploying .net core apps to Docker - dotnetConf Local Bengaluru
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
 
Docker
DockerDocker
Docker
 
Introduction To Docker
Introduction To  DockerIntroduction To  Docker
Introduction To Docker
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
Docker
DockerDocker
Docker
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Development
 
Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptx
 
Docker
DockerDocker
Docker
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
 
Docker
DockerDocker
Docker
 
Docker, LinuX Container
Docker, LinuX ContainerDocker, LinuX Container
Docker, LinuX Container
 
Docker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini AnandDocker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini Anand
 
Docker 1.9 Workshop
Docker 1.9 WorkshopDocker 1.9 Workshop
Docker 1.9 Workshop
 
Setup docker on existing application
Setup docker on existing applicationSetup docker on existing application
Setup docker on existing application
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 

Recently uploaded

Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 

Recently uploaded (20)

Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 

How to _docker

  • 2. Presentation Agenda Introduction to docker - what, why etc. Installation and Configuration - DEV environment Modifying Cellostics in DEV and modifying Docker Image Why we use Docker - Benefits How Docker Works Installing and Running Cellostics on Docker - DEV environment Deploying Cellostics Docker Image (created from DEV) to Production Building Microservices in Docker Image Redeploying Docker Image in prod with modification
  • 3. Introduction to Docker - what? What is Docker ● Open platform for developers and sysadmins to build, ship, and run distributed applications ● It is a lightweight container platform and it is fast ● Available on most linux distros ● Also runs on windows and mac os ● Can run thousands of containers
  • 4. Introduction to docker why, what? Traditional VM vs. Docker Hardware Host OS Hypervisor RHEL Bins/Libs uniVerge CentOS OS Bins/Libs Celloscope Cellostics Bins/Libs Guest OS Docker Engine Linux Kernel/Host OS Hardware Bins/Libs Bins/Libs Bins/Libs uniVerge CellosticsCelloscope VM Docker
  • 5. The issue with traditional VM’s Many different stacks ❏ Languages (Java, C#, Python, R) ❏ Frameworks (Angular, River, Spring) ❏ Databases (Postgres, Oracle, NoSQL) Many different targets ❏ Individual development environments ❏ Pre-production, QA, staging …. ❏ Production: on premises, cloud, hybrid Deployment becomes very complex
  • 6. Why Docker, its benefits A Clean, Safe and portable runtime environment for Your App No worries about missing dependencies, package and other pain points during subsequent developments. Run each app in its own isolated container, accumulated with various versions and libraries and other dependencies for each app Automate testing, integration, packaging, anything you can script. Reduce/Eliminate concerns about compatibility on different platforms Cheap, zero-penalty containers to deploy services. A VM without the overhead of VM. Instant replay and reset of image snapshot. That's the It’s Fast and lightweight Minimal overhead/resource usage Run thousands of containers Easy to run your whole production stack locally
  • 7. Introduction to docker why, what, etc ? VM
  • 8. How docker works Docker Client Image 1Container 1 Container 2 Image 2 Image 3Container 3 Host Docker Registry ● Isolated Application Platform ● Contains everything needed to run your application ● Based on images ● Read Only Template used to create containers ● Built by you or other Docker users ● Stored in the Docker Hub or your local Registry Container Image
  • 9. Installation and configuration Images Container 1-Pull 2- run 3 - Stop, Start, restart 4-Commit 5 - Push build Local Docker instance
  • 10. Installation and configuration 1.Installing docker > sudo apt-get install docker-engine # For Debian and Ubuntu > sudo yum install docker-engine # For RHEL, CentOS, Fedora 2. Starting docker service > sudo systemctl start docker 3.Verify docker is installed correctly by running > sudo docker run --rm hello-world 4. Installing Docker Image > docker pull image_name > docker images # Will show existing images > docker ps -l # Will show all running container
  • 11. Installation and configuration 5. Showing Docker network > docker network inspect network_name 6. Kill all running container > docker kill $(docker ps -q) 7. Deleting unused docker container > sudo docker rm ‘docker ps --no-trunc -aq’ 8. Delete all stopped containers (including data-only containers) > docker rm $(docker ps -a -q) 9. Delete all 'untagged/dangling' (<none>) images > docker rmi $(docker images -q -f dangling=true) > docker volume is -f dangling=true
  • 12. Installation and configuration 10. For connecting docker postgres console > docker exec -ti testcellostics_db_1 psql -h db -U postgres > docker run -it --rm --link db_ap:postgres postgres psql -h postgres -U postgres > docker run --name auth_data -e POSTGRES_PASSWORD=mysecret -d postgres > docker run -it --rm --link db_ap:postgres postgres psql -h postgres -U postgres 11. Giving an image a new name > sudo docker tag <oldname> <newname>
  • 13. Installing and running Cellostics on Docker dev environment FROM python:3.5 ENV PYTHONUNBUFFERED 1 RUN mkdir /app WORKDIR /app ADD requirements.txt /app/ RUN pip install -r requirements.txt ADD . /app/ Dockerfile
  • 14. Installing and running on Docker dev environment version: “2” service nginx: image: "nginx:latest" ports: - "8080:8000" volumes: - "./src:/src" - "./config/nginx:/etc/nginx/conf.d" cellostics-server: build: . hostname: cellostics-server command: bash -c "gunicorn project.wsgi:application -b 0.0.0.0:8000" volumes: - .:/app ports: - "8000:8000" depends_on: - db docker-compose.yml
  • 15. Installing and running on Docker dev environment db: image: postgres:9.5 hostname: db environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_DB=postgres Docker-compose.yml (contd.)
  • 16. Deploying Cellostics Docker image(created from Dev) to prod 1. Push the images to the docker hub > docker push username/imagename:tag 2. Pull the image from docker hub or other sources > docker login username > docker pull image_name:tag > docker images > docker run image_name:tag 3. Run from configuration file (the directory where docker compose file located) > docker-compose up
  • 17. Modifying and redeploying image in production environment 1. Run the docker image which will run as a container > docker run -it image_name command_to_execute 2. Modified container will save as image > docker commit container_name image_name 3. Redeploying modified Image and run as a container > docker run image_id
  • 18. Building Microservice Application Traditional Style Monolithic Architecture UI Backend Other Service User Reverse Proxy Application Server RDBMS
  • 19. Microservice Application using docker Microservice Architecture Container Web Front end DB Container Map Service Container Log Server Container Message client
  • 20. Microservice Application using docker ● Each Service can be developed and upgraded independently ● Easier to developer for understand ● If one service goes down, then the application should still run, although with the reduced functions ● Application is easier to troubleshoot and maintain ● The whole application doesn’t have to be committed to one technology dependent stack
  • 21. Implementation ❏ Create a Docker File ❏ Create a Docker Compose File ❏ Build Docker file ❏ Docker Compose File Up ❏ Restore data for Postgres docker container ❏ Create image for Nginx ❏ Docker Login ❏ Docker Push
  • 23. docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker

Editor's Notes

  1. The challenge
  2. Docker workflow
  3. Docker workflow
  4. Docker workflow
  5. Docker workflow