Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Demystifying Docker
$whoami
Principal Development Engineer at DellEMC
1st half of my career was in CGI & VMware
2nd half of my career has been...
Ajeet Singh
Raina
@ajeetsraina
Tip of the
Captains Hat
Award
$curl www.collabnix.com
A Shift from Monolithic to
Microservice Architecture
Let’s imagine you are building
a large, complex application,
e.g., Online Store
Successful Software Development
Architecture
Process Organization
Successful Software Development
Architecture
Process Organization
Small
Autonomous
team
Successful Software Development
Architecture
Process
Agile
Continuous Delivery
Organization
Small
Autonomous
team
Successful Software Development
Architecture
Monolthic Vs Microservices
Process
Agile
Continuous Delivery
Organization
Sma...
A Close Look at Monolithic
Browser
Client
App
Storefront UI
Module
Catalog
Module
Reviews
Module
Orders
Module
HTML
REST/J...
A Close Look at Monolithic
Browser
Client
App
Storefront UI
Module
Catalog
Module
Reviews
Module
Orders
Module
WAR
Tomcat
...
Simple to Develop, Test, Deploy & Scale
- Simple to develop because of all the tools and IDEs support to that kind
of appl...
- Very difficult to maintain
- One component failure will cause the whole system to fail.
- Very difficult to understand a...
Today
- Apps are constantly developed
- Built from loosely coupled components
- Newer version are deployed often
- Deploye...
Microservice Architecture
Catalog
Service
Reviews
Service
Order
Service
…
Service
Catalog
Database
Reviews
Database
Order
...
- Can scale independent microservices separately. No need to scale
the whole the system
- Can use the latest technologies ...
Once upon a time…a Software Stack
Now much more distributed & complex…
An Effort to solve the problem Complexity
Every possible good to ship X Every Possible way to Ship
Enter….Internodal Container
That’s what Docker is all about..
What is Docker and what
problem does it solve?
What is Docker?
Refers to several things in 2019
 Docker as a “Company”
 Docker as a “Product”
 Docker as a “Platform”
...
• Standardized packaging for
software and dependencies
• Isolate apps from each other
• Share the same OS kernel
• Works f...
Docker Product Offerings
Today Docker runs on
Traditional Software
Development WorkFlow
(without Docker)
Traditional Software
Development WorkFlow
(with Docker)
Docker Vs VM
Docker Containers are NOT VMs
Virtual Machine
Containers
Docker Container Vs VM
Comparing Docker & VM
Virtual Machines Docker
Each VM runs its own OS Container is just a user space of OS
Boot up time is...
What makes Containers
so small?
User space refers to all of the code in an operating system that lives
outside of the kernel.
Container = User Space of OS...
Demonstrating Process
Virtualization
Demonstration Process Virtualization
Docker Engine
Architecture
Docker Engine Architecture
Docker Vocabulary
Image Layers
Kernel
Alpine Linux
Install Python and Pip
Upgrade Pip
Copy Requirements
Install Requirements
…
A Look at “Dive” Tool
A tool for exploring each layer in a Docker image
https://github.com/wagoodman/dive
Basic Docker CLIs
Pulling Docker Image
$ docker pull ajeetraina/hellowhale
Listing out Docker Images
$ docker image ls
Run...
Docker Desktop Community
Vs Docker Enterprise
Docker Community Edition
All in one development for Swarm and Kubernetes
Docker Desktop Community Vs Enterprise
Docker Desktop
Community
Docker Desktop
Enterprise
Simplest Path to Container-based...
Docker Desktop Community Vs Enterprise
Docker Desktop
Community
Docker Desktop
Enterprise
Production-Ready Environment
Sam...
Using Docker – Build,
Ship & Run WorkFlow
Build. Ship. Run.
- Create DockerHub Account(if not completed)
- Open https://play-with-docker.com
- Hello Whale Example
- Build Your First ...
Docker New CLI Plugin
Plugins Delivery Vehicle Availability
app 19.03-ce, 19.03-ee, Desktop CE,
Desktop EE
Available now via Engine Community an...
Building Docker Containers &
Microservices
Introducing Dockerfile
Series of instructions to build Docker Images
Dockerfile – Example
Each Dockerfile creates a Layer
Kernel
Alpine Linux
Install Python and Pip
Upgrade Pip
Copy Requirements
Install Requireme...
Compose is a tool for defining and running multi-container Docker applications
Docker Compose
- Running WordPress Application using Docker Compose
Demo
How can I contribute?
$open dockerlabs.collabnix.com
Upcoming Event
Reference
 https://github.com/collabnix/dockerlabs
 https://docs.docker.com
 http://www.collabnix.com
Thank You
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore
Upcoming SlideShare
Loading in …5
×

Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore

133 views

Published on

Presented this session on September 7th at Bridgei2i Technology

Published in: Technology
  • Be the first to comment

Demystifying Docker - Docker Bangalore Joint Meetup with Cloud Native Group of Bangalore

  1. 1. Demystifying Docker
  2. 2. $whoami Principal Development Engineer at DellEMC 1st half of my career was in CGI & VMware 2nd half of my career has been in System Integration Testing Docker Captain (since 2016) Docker Bangalore Meetup Organizer ( 7600+ Registered Users) DockerLabs Incubator Ajeet Singh Raina Twitter: @ajeetsraina GitHub: ajeetraina
  3. 3. Ajeet Singh Raina @ajeetsraina Tip of the Captains Hat Award
  4. 4. $curl www.collabnix.com
  5. 5. A Shift from Monolithic to Microservice Architecture
  6. 6. Let’s imagine you are building a large, complex application, e.g., Online Store
  7. 7. Successful Software Development Architecture Process Organization
  8. 8. Successful Software Development Architecture Process Organization Small Autonomous team
  9. 9. Successful Software Development Architecture Process Agile Continuous Delivery Organization Small Autonomous team
  10. 10. Successful Software Development Architecture Monolthic Vs Microservices Process Agile Continuous Delivery Organization Small Autonomous team
  11. 11. A Close Look at Monolithic Browser Client App Storefront UI Module Catalog Module Reviews Module Orders Module HTML REST/JSON Database
  12. 12. A Close Look at Monolithic Browser Client App Storefront UI Module Catalog Module Reviews Module Orders Module WAR Tomcat HTML REST/JSON Database
  13. 13. Simple to Develop, Test, Deploy & Scale - Simple to develop because of all the tools and IDEs support to that kind of application by default. - Easy to deploy because all components are packed into one bundle. - Easy to scale the whole application. Benefits of Monolith
  14. 14. - Very difficult to maintain - One component failure will cause the whole system to fail. - Very difficult to understand and create the patches for monolithic applications. - Adapting to new technology is very challengeable. - Take a long time to startup because all the components need to get started. Disadvantages of Monolith
  15. 15. Today - Apps are constantly developed - Built from loosely coupled components - Newer version are deployed often - Deployed to a multitude of servers Customer/ Clients/ Users Data Storage Data Storage Data Storage
  16. 16. Microservice Architecture Catalog Service Reviews Service Order Service … Service Catalog Database Reviews Database Order Database … Database API Gateway Storefront UI Browser Mobile Device REST REST HTML REST
  17. 17. - Can scale independent microservices separately. No need to scale the whole the system - Can use the latest technologies to develop the microservices. - One component failure will not cause entire system downtimes. - When developing an overall solution we can parallel the microservices development task with the small teams. So it helps to decrease the development time. Benefits of Microservices
  18. 18. Once upon a time…a Software Stack
  19. 19. Now much more distributed & complex…
  20. 20. An Effort to solve the problem Complexity
  21. 21. Every possible good to ship X Every Possible way to Ship
  22. 22. Enter….Internodal Container
  23. 23. That’s what Docker is all about..
  24. 24. What is Docker and what problem does it solve?
  25. 25. What is Docker? Refers to several things in 2019  Docker as a “Company”  Docker as a “Product”  Docker as a “Platform”  Docker as a “CLI Tool”  Docker as a “Computer Program”
  26. 26. • Standardized packaging for software and dependencies • Isolate apps from each other • Share the same OS kernel • Works for all major Linux distributions • Containers native to Windows Server 2016 & 1809 What is Docker?
  27. 27. Docker Product Offerings
  28. 28. Today Docker runs on
  29. 29. Traditional Software Development WorkFlow (without Docker)
  30. 30. Traditional Software Development WorkFlow (with Docker)
  31. 31. Docker Vs VM
  32. 32. Docker Containers are NOT VMs
  33. 33. Virtual Machine
  34. 34. Containers
  35. 35. Docker Container Vs VM
  36. 36. Comparing Docker & VM Virtual Machines Docker Each VM runs its own OS Container is just a user space of OS Boot up time is in minutes Containers instantiate in seconds VMs snapshots are used sparingly Images are built incrementally on top of another like layers. Lots of images/snapshots Not effective diffs. Not version controlled Images can be diffed and can be version controlled. Docker hub is like GITHUB Cannot run more than couple of VMs on an average laptop Can run many Docker containers in a laptop. Only one VM can be started from one set of VMX and VMDK files Multiple Docker containers can be started from one Docker image
  37. 37. What makes Containers so small?
  38. 38. User space refers to all of the code in an operating system that lives outside of the kernel. Container = User Space of OS Process Virtualization
  39. 39. Demonstrating Process Virtualization
  40. 40. Demonstration Process Virtualization
  41. 41. Docker Engine Architecture
  42. 42. Docker Engine Architecture
  43. 43. Docker Vocabulary
  44. 44. Image Layers Kernel Alpine Linux Install Python and Pip Upgrade Pip Copy Requirements Install Requirements …
  45. 45. A Look at “Dive” Tool A tool for exploring each layer in a Docker image https://github.com/wagoodman/dive
  46. 46. Basic Docker CLIs Pulling Docker Image $ docker pull ajeetraina/hellowhale Listing out Docker Images $ docker image ls Running Docker Containers $ docker run –d –p 5000:5000 –-name hellowhale ajeetraina/hellowhale Stopping the container $ docker stop hellowhale (or <container id>)
  47. 47. Docker Desktop Community Vs Docker Enterprise
  48. 48. Docker Community Edition All in one development for Swarm and Kubernetes
  49. 49. Docker Desktop Community Vs Enterprise Docker Desktop Community Docker Desktop Enterprise Simplest Path to Container-based Development Latest Docker Engine Based on Containerd Certified Kubernetes Available for Windows 10 & MacOS Develop in any Language & Framework, even multiple versions simultaneously
  50. 50. Docker Desktop Community Vs Enterprise Docker Desktop Community Docker Desktop Enterprise Production-Ready Environment Same API & Commands shared by Developers in Production Application Designer interface to simplify creating & developing Docker applications Swappable Docker Engine and Kubernetes versions to match Docker Enterprise production environments
  51. 51. Using Docker – Build, Ship & Run WorkFlow
  52. 52. Build. Ship. Run.
  53. 53. - Create DockerHub Account(if not completed) - Open https://play-with-docker.com - Hello Whale Example - Build Your First Docker Image & Push it to DockerHub Demo
  54. 54. Docker New CLI Plugin
  55. 55. Plugins Delivery Vehicle Availability app 19.03-ce, 19.03-ee, Desktop CE, Desktop EE Available now via Engine Community and Desktop Community (Mac | Windows) Docker Enterprise 3.0 assemble 19.03-ee, Desktop Enterprise Available with Docker Enterprise 3.0 template 19.03-ee, Desktop Enterprise Available with Docker Enterprise 3.0 cluster 19.03-ee, Desktop Enterprise Available with Docker Enterprise 3.0 gmsa 19.03-ee, Desktop Enterprise Available with Docker Enterprise 3.0 registry 19.03-ee, Desktop Enterprise Available with Docker Enterprise 3.0 buildx desktop-edge Available in Desktop CE Edge (Mac | Windows), download the plugin jump Sign up for more information Sign up for more information pipeline Sign up for more information Sign up for more information Docker New CLI Plugin
  56. 56. Building Docker Containers & Microservices
  57. 57. Introducing Dockerfile Series of instructions to build Docker Images
  58. 58. Dockerfile – Example
  59. 59. Each Dockerfile creates a Layer Kernel Alpine Linux Install Python and Pip Upgrade Pip Copy Requirements Install Requirements …
  60. 60. Compose is a tool for defining and running multi-container Docker applications Docker Compose
  61. 61. - Running WordPress Application using Docker Compose Demo
  62. 62. How can I contribute?
  63. 63. $open dockerlabs.collabnix.com
  64. 64. Upcoming Event
  65. 65. Reference  https://github.com/collabnix/dockerlabs  https://docs.docker.com  http://www.collabnix.com
  66. 66. Thank You

×