SlideShare a Scribd company logo
ManageImplementAdviseEducate
Container Orchestration using
Docker & Kubernetes
By Mahendra Shinde
ManageImplementAdviseEducate
Agenda
Module 1: Introduction to Containers
Module 2: Container Architecture
Module 3: Docker Architecture
HOL 1: Installing Docker CE on Windows & Linus Host
Module 4: Application modernization using docker
Demo : Deploying TWO TIER application Using Docker compose
HOL 2: Deploying TWO TIER application (DotNet Core + MS SQL) using Docker compose
Module 5: Understanding Orchestration
ManageImplementAdviseEducate
Module 1
Introduction to Containers
ManageImplementAdviseEducate
Application packaging strategies
 Every Application has certain dependencies.
 Libraries provided by Operating System
 Libraries provided by runtime environment like Java, Python & Dot Net runtime
 Server Runtime like Tomcat for Java, IIS for Asp.net, Apache httpd
 Third Party Libraries
 Change in Dependencies affects Application.
ManageImplementAdviseEducate
Application packaging strategies /challenges
 Application goes through following phases:
 Development
 Testing
 Staging
 Production
 Managing dependencies across all these environments could be challenging.
 Creating compatible dev-test environment may take considerable time.
 Question : Challenges in moving application between environments
 Question: List Existing solutions based on Virtualization
ManageImplementAdviseEducate
Containers as alternative
• A Typical container would have application
& all its dependencies packed together.
• This makes container “decoupled” from
targeted environment.
• Only restriction being Windows or Linux
platform.
Container
Base Image
Runtime (JRE / Python / Node)
Third Party Libs
Application Image
Writable Layer
ManageImplementAdviseEducate
Benefits of Containers
• Isolate application from underlying OS and
Hardware.
• Lightweight, provides higher density than
Virtual machines.
• Dev-Ops ready. Many CI/CD platforms
support container deployments/build.
• Every container executes in a separate user
space.
ManageImplementAdviseEducate
Container vs Virtual machines
• Virtual machines provides hardware level
virtualization.
• Virtual machines contains Operating system.
• Virtual machines use guest OS kernel.
• Host OS and Guest OS could be completely
different.
• Booting up VM is equivalent of booting a
physical machine.
• Containers provide software level isolation,
no hardware virtualization.
• Containers use “base image” which provide
basic OS level libraries but not the OS.
• Containers use host OS kernel.
• Due to dependence on Host OS Kernel,
containers must be deployed on compatible
host OS.
• Launching container is equivalent of
launching an application.
ManageImplementAdviseEducate
Container platforms
• Docker from Docker Inc
• LXC from Linux
• LXD from Ubuntu
• RKT from CoreOS
ManageImplementAdviseEducate
Module 2
Container Architecture
ManageImplementAdviseEducate
Container & Images
• Containers are running instances of image
• Image is a read-only filesystem made of “layers”
• Each “layer” is an image which may contain a specific application, library or runtime.
• Container has an extra “Writable” layer.
• The bottom-most image is “base” image.
Host Kernel
Debian Image [Read Only]
BusyBox Image [Read Only]
Apache2 HTTP Image [Read Only]
MySQL DB Image [Read Only]
Writable Layer
Writable Layer
ManageImplementAdviseEducate
Read-Only vs Writable layers
• Read-only layers are shared by multiple containers / images.
• Writable layer allows read and write operations
• Every container has ONE writable layer.
• Every layer has unique ID and meta-data.
ManageImplementAdviseEducate
Image repositories
• An Image repository is persistent storage for container images
• A private repository can be accessed by selected users.
• A public repository can be accessed by any one.
• A Developer may “Push” application as container image.
• An operations team may “Pull” the same image for deployment.
• Many cloud platforms do provide “Hosted” container repositories.
• Host repositories are managed by vendor.
ManageImplementAdviseEducate
Container Networking
• Containers can communicate through a container network.
• Container platform like docker have
Multiple network models.
Host Kernel
Container Network
Container
1
Container 2
ManageImplementAdviseEducate
Module 03
Docker Architecture
ManageImplementAdviseEducate
Docker As a Container platform
• An open platform for developing, shipping, and running applications.
• Started it’s life as a PaaS provider by name dotCloud.
• Since its inception, working with linux container.
• The container platform was named “Docker”
• In 2013, got “rebranded” as Docker Inc.
• A container platform based on “runc” and “libcontainer”
ManageImplementAdviseEducate
Docker Editions
• Community edition (Docker CE)
• Ideal for developers and small teams experimenting with containers.
• Enterprise Edition (Docker EE)
• Enterprise development & IT team for business critical
applications at production scale.
ManageImplementAdviseEducate
Docker components
• Docker engine (docker daemon)
• Docker container images
• Docker containers
• Docker CLI (client)
• Docker (REST) API
• Docker Registry
ManageImplementAdviseEducate
Docker components
• Batteries included but “removable” (“replaceable”)
• Built in security
• Linux hosts can use AppArmor or SELinux
• Namespaces to restrict access to host system resources.
ManageImplementAdviseEducate
Docker on Windows & Linux hosts
• Docker being only container platform supporting both Windows and Linux.
• Windows based container supported only on Windows 10 PRO and Windows Server 2016.
• Docker installation on windows uses different components than linux host.
• Images built for linux cannot be deployed on windows hosts.
• Windows do have a trick: docker-machine and moby project to run linux containers through
a lightweight VM.
ManageImplementAdviseEducate
Hands On LAB
• HOL 1: Installing Docker CE on Windows Server 2016
• Pre-requisite:
• Azure subscription
• Basic Windows administration w/ powershell.
• Windows server 2016 VM on Azure
• Remote Desktop client (built in windows) for accessing windows VM.
ManageImplementAdviseEducate
Hands On LAB
• HOL 2: Installing Docker CE on Ubuntu Server 18.04 LTS
• Pre-requisite:
• Azure subscription
• Basic Linux administration using bash shell.
• Ubuntu Server 18.04 LTS VM on Azure
• SSH Client (PuTTY or Git Bash or Ubuntu Bash)
ManageImplementAdviseEducate
Module 04
Application modernization
ManageImplementAdviseEducate
Application types
• A multi-layered monolith application
• A distributed application / SOA
• Micro-services
• Containers do support
all of them!
• Monolith = Single large
Container for App
+ DB Container
• Distributed =
Container for each
Service / Module
ManageImplementAdviseEducate
A typical TWO TIER Application
Front End App Container
Back End App Container
Back End App Container
Back End App Container
Front End App Container
ManageImplementAdviseEducate
Dockerfile
• Automates the “Build” process of a container.
• Integrates with all popular CI/CD tools.
• Simple language to define entire build workflow
• Basic system administration commands needed.
• Windows : prefer powershell
• Linux: prefer bash
• Can be placed in SCM
ManageImplementAdviseEducate
Docker compose
• A Tool for defining and deploying multi-container application.
• Compose is a THREE STEP process
• Define the application environment using Dockerfile
• Define the services that make up your application using docker-compose.yml file
• Run docker-compose up command to quickly run entire application in isolated environment.
• Provides re-producible deployment artefacts.
• Only recreates container that have changed.
• Upon “restart” containers are spawned from “cached” versions if no change detected.
• Supports environment variables
• Supports “secrets”
• Traditionally used for Single host deployment.
ManageImplementAdviseEducate
Docker Compose
“Web” container
“Redis” Container
ManageImplementAdviseEducate
Docker Compose vs Dockerfile
ManageImplementAdviseEducate
Dockerfile reference
Command Description
FROM Initializes a new build and define “base” image to be used for building.
RUN A Step to be executed in build process. Can be used for installing necessary package.
CMD Provide DEFAULT “startup” action for container. Must be used only ONCE.
LABEL Provides additional META-DATA like Author name
EXPOSE A Hint for port used by container, can be overridden at run-time.
ENV Define environment variables.
COPY Copy files from host system to container.
NOTE : optional feature --chown for linux containers
ManageImplementAdviseEducate
Docker-compose reference
Section Description
Services: Define one or more service [YAML syntax]
Build: Provide relative path to directory which contains “Dockerfile”
Image: Provide image name using syntax: [repository-name]/[image-name]:[tag]
For public images on docker-hub [repository-name] is dropped.
Volumes: Define volumes to be mounted
Networks: Define a private network for application.
Labels: Additional meta-data
ManageImplementAdviseEducate
Demos
• Demo 1: Deploying an application back-end and front-end as single
application.
• Demo 1-A Using MySQL with Wordpress
• Demo 1-B Using MS-SQL with Asp.net core
ManageImplementAdviseEducate
Hands On
• HOL 2] Deploying front-end application (ASP.NET core) and Back-end (MS
SQL) using single docker-compose.
• Use docker-compose to define entire application
• Use existing VM created in HOL-1
ManageImplementAdviseEducate
Module 05
Understanding Orchestration
ManageImplementAdviseEducate
Orchestration
• Need for Orchestration
• Ephemeral computing
• Desired State
• Cluster management
• Container Orchestration platforms
• Docker Swarm (from Docker Inc)
• Kubernetes (from Google)
• DC/OS (based on Apache Mesos)
• Nomad (from HashiCorp)
ManageImplementAdviseEducate
Docker Swarm
• Cluster management integrated with Docker engine
• Decentralized design (for cluster management)
• Declarative service model (ref: docker-compose)
• Scaling
• Desired state reconciliation
• Multi-host networking
• Service discovery
• Load balancing
ManageImplementAdviseEducate
Kubernetes
• Cluster managed from google with 10+ years of internal use by google.
• Open source, run anywhere
• Service discovery
• Load balancing
• Self healing
• Storage
orchestration
• Scaling
ManageImplementAdviseEducate
DC/OS
• Distributed OS based on Apache Mesos
• Treat cluster as a single machine
• High resource utilization
• Container orchestration using “Marathon”
• Cloud agnostic installation
ManageImplementAdviseEducate
Q/A

More Related Content

PPT
Jenkins Overview
PPTX
JENKINS Training
PDF
Continuous integration / deployment with Jenkins
PPTX
Jenkins for java world
PDF
Jenkins-CI
ODP
An Introduction To Jenkins
PDF
Jenkins tutorial
Jenkins Overview
JENKINS Training
Continuous integration / deployment with Jenkins
Jenkins for java world
Jenkins-CI
An Introduction To Jenkins
Jenkins tutorial

What's hot (20)

PPTX
Introduction to jenkins
PPTX
Jenkins CI
PPTX
Jenkins Introduction
PDF
Yale Jenkins Show and Tell
PDF
Jenkins
PDF
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
PDF
Play 2 Java Framework with TDD
PPT
CI and CD with Jenkins
PPTX
ACM Gazi Docker?
PPTX
Docker crash course
PDF
DockerCon SF 2015: Docker in the New York Times Newsroom
DOCX
What is jenkins
PDF
DockerCon SF 2015: DHE/DTR
PPTX
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
PDF
Netflix and Containers: Not A Stranger Thing
PPTX
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
PDF
DCSF 19 Building Your Development Pipeline
PPT
Jenkins CI
PDF
Let’s start Continuous Integration with jenkins
PPTX
Top 5 benefits of docker
Introduction to jenkins
Jenkins CI
Jenkins Introduction
Yale Jenkins Show and Tell
Jenkins
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
Play 2 Java Framework with TDD
CI and CD with Jenkins
ACM Gazi Docker?
Docker crash course
DockerCon SF 2015: Docker in the New York Times Newsroom
What is jenkins
DockerCon SF 2015: DHE/DTR
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Netflix and Containers: Not A Stranger Thing
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
DCSF 19 Building Your Development Pipeline
Jenkins CI
Let’s start Continuous Integration with jenkins
Top 5 benefits of docker
Ad

Similar to Introduction to Containers & Diving a little deeper into the benefits of Containerisation (20)

PDF
The ABC of Docker: The Absolute Best Compendium of Docker
PPTX
ma-formation-en-Docker-jlklk,nknkjn.pptx
PPTX
The challenge of application distribution - Introduction to Docker (2014 dec ...
PPTX
Docker open stack boston
PPTX
OpenStack Boston
PDF
Introduction to Docker
PPTX
Docker for developers - The big picture
PDF
Docker and OpenStack Boston Meetup
PDF
Whales, Clouds, and Bubbles...?
PDF
Docker handons-workshop-for-charity
PPTX
Docker introduction
PDF
Docker-v3.pdf
PPTX
Introduction to automated environment management with Docker Containers - for...
PPTX
Docker 101
PDF
A curtain-raiser to the container world Docker & Kubernetes
PDF
Accelerate your software development with Docker
PPTX
Accelerate your development with Docker
PPTX
Intro Docker october 2013
PPTX
Intro to Docker November 2013
PDF
Introduction to Docker - Vellore Institute of Technology
The ABC of Docker: The Absolute Best Compendium of Docker
ma-formation-en-Docker-jlklk,nknkjn.pptx
The challenge of application distribution - Introduction to Docker (2014 dec ...
Docker open stack boston
OpenStack Boston
Introduction to Docker
Docker for developers - The big picture
Docker and OpenStack Boston Meetup
Whales, Clouds, and Bubbles...?
Docker handons-workshop-for-charity
Docker introduction
Docker-v3.pdf
Introduction to automated environment management with Docker Containers - for...
Docker 101
A curtain-raiser to the container world Docker & Kubernetes
Accelerate your software development with Docker
Accelerate your development with Docker
Intro Docker october 2013
Intro to Docker November 2013
Introduction to Docker - Vellore Institute of Technology
Ad

More from Synergetics Learning and Cloud Consulting (20)

PPTX
Monitor Cloud Resources using Alerts & Insights
PPTX
Implementing governance in the cloud era
PPTX
Past, Present and Future of DevOps Infrastructure
PPTX
Microsoft Azure New Certification Training roadmap
PPTX
Synergetics Microsoft engagement work
PPTX
Deep architectural competency for deploying azure solutions
PPTX
Synergetics Re-skilling pitch deck
PPTX
Synergetics On boarding pitch deck
PPTX
Apache Spark on HDinsight Training
PPTX
Thank you global azure boot camp 2018, mumbai
PPTX
Synergetics Digital Transformation Note
PPTX
Synergetics digital transformation
PPTX
Synergetics India Corporate Presentation
PPTX
Synergetics Consulting project details
PPTX
Core synergetics presentation 2015-16
Monitor Cloud Resources using Alerts & Insights
Implementing governance in the cloud era
Past, Present and Future of DevOps Infrastructure
Microsoft Azure New Certification Training roadmap
Synergetics Microsoft engagement work
Deep architectural competency for deploying azure solutions
Synergetics Re-skilling pitch deck
Synergetics On boarding pitch deck
Apache Spark on HDinsight Training
Thank you global azure boot camp 2018, mumbai
Synergetics Digital Transformation Note
Synergetics digital transformation
Synergetics India Corporate Presentation
Synergetics Consulting project details
Core synergetics presentation 2015-16

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPT
Teaching material agriculture food technology
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
KodekX | Application Modernization Development
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Big Data Technologies - Introduction.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Cloud computing and distributed systems.
Mobile App Security Testing_ A Comprehensive Guide.pdf
Teaching material agriculture food technology
Spectral efficient network and resource selection model in 5G networks
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Electronic commerce courselecture one. Pdf
Advanced Soft Computing BINUS July 2025.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
KodekX | Application Modernization Development
“AI and Expert System Decision Support & Business Intelligence Systems”
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Machine learning based COVID-19 study performance prediction
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Big Data Technologies - Introduction.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Cloud computing and distributed systems.

Introduction to Containers & Diving a little deeper into the benefits of Containerisation

  • 2. ManageImplementAdviseEducate Agenda Module 1: Introduction to Containers Module 2: Container Architecture Module 3: Docker Architecture HOL 1: Installing Docker CE on Windows & Linus Host Module 4: Application modernization using docker Demo : Deploying TWO TIER application Using Docker compose HOL 2: Deploying TWO TIER application (DotNet Core + MS SQL) using Docker compose Module 5: Understanding Orchestration
  • 4. ManageImplementAdviseEducate Application packaging strategies  Every Application has certain dependencies.  Libraries provided by Operating System  Libraries provided by runtime environment like Java, Python & Dot Net runtime  Server Runtime like Tomcat for Java, IIS for Asp.net, Apache httpd  Third Party Libraries  Change in Dependencies affects Application.
  • 5. ManageImplementAdviseEducate Application packaging strategies /challenges  Application goes through following phases:  Development  Testing  Staging  Production  Managing dependencies across all these environments could be challenging.  Creating compatible dev-test environment may take considerable time.  Question : Challenges in moving application between environments  Question: List Existing solutions based on Virtualization
  • 6. ManageImplementAdviseEducate Containers as alternative • A Typical container would have application & all its dependencies packed together. • This makes container “decoupled” from targeted environment. • Only restriction being Windows or Linux platform. Container Base Image Runtime (JRE / Python / Node) Third Party Libs Application Image Writable Layer
  • 7. ManageImplementAdviseEducate Benefits of Containers • Isolate application from underlying OS and Hardware. • Lightweight, provides higher density than Virtual machines. • Dev-Ops ready. Many CI/CD platforms support container deployments/build. • Every container executes in a separate user space.
  • 8. ManageImplementAdviseEducate Container vs Virtual machines • Virtual machines provides hardware level virtualization. • Virtual machines contains Operating system. • Virtual machines use guest OS kernel. • Host OS and Guest OS could be completely different. • Booting up VM is equivalent of booting a physical machine. • Containers provide software level isolation, no hardware virtualization. • Containers use “base image” which provide basic OS level libraries but not the OS. • Containers use host OS kernel. • Due to dependence on Host OS Kernel, containers must be deployed on compatible host OS. • Launching container is equivalent of launching an application.
  • 9. ManageImplementAdviseEducate Container platforms • Docker from Docker Inc • LXC from Linux • LXD from Ubuntu • RKT from CoreOS
  • 11. ManageImplementAdviseEducate Container & Images • Containers are running instances of image • Image is a read-only filesystem made of “layers” • Each “layer” is an image which may contain a specific application, library or runtime. • Container has an extra “Writable” layer. • The bottom-most image is “base” image. Host Kernel Debian Image [Read Only] BusyBox Image [Read Only] Apache2 HTTP Image [Read Only] MySQL DB Image [Read Only] Writable Layer Writable Layer
  • 12. ManageImplementAdviseEducate Read-Only vs Writable layers • Read-only layers are shared by multiple containers / images. • Writable layer allows read and write operations • Every container has ONE writable layer. • Every layer has unique ID and meta-data.
  • 13. ManageImplementAdviseEducate Image repositories • An Image repository is persistent storage for container images • A private repository can be accessed by selected users. • A public repository can be accessed by any one. • A Developer may “Push” application as container image. • An operations team may “Pull” the same image for deployment. • Many cloud platforms do provide “Hosted” container repositories. • Host repositories are managed by vendor.
  • 14. ManageImplementAdviseEducate Container Networking • Containers can communicate through a container network. • Container platform like docker have Multiple network models. Host Kernel Container Network Container 1 Container 2
  • 16. ManageImplementAdviseEducate Docker As a Container platform • An open platform for developing, shipping, and running applications. • Started it’s life as a PaaS provider by name dotCloud. • Since its inception, working with linux container. • The container platform was named “Docker” • In 2013, got “rebranded” as Docker Inc. • A container platform based on “runc” and “libcontainer”
  • 17. ManageImplementAdviseEducate Docker Editions • Community edition (Docker CE) • Ideal for developers and small teams experimenting with containers. • Enterprise Edition (Docker EE) • Enterprise development & IT team for business critical applications at production scale.
  • 18. ManageImplementAdviseEducate Docker components • Docker engine (docker daemon) • Docker container images • Docker containers • Docker CLI (client) • Docker (REST) API • Docker Registry
  • 19. ManageImplementAdviseEducate Docker components • Batteries included but “removable” (“replaceable”) • Built in security • Linux hosts can use AppArmor or SELinux • Namespaces to restrict access to host system resources.
  • 20. ManageImplementAdviseEducate Docker on Windows & Linux hosts • Docker being only container platform supporting both Windows and Linux. • Windows based container supported only on Windows 10 PRO and Windows Server 2016. • Docker installation on windows uses different components than linux host. • Images built for linux cannot be deployed on windows hosts. • Windows do have a trick: docker-machine and moby project to run linux containers through a lightweight VM.
  • 21. ManageImplementAdviseEducate Hands On LAB • HOL 1: Installing Docker CE on Windows Server 2016 • Pre-requisite: • Azure subscription • Basic Windows administration w/ powershell. • Windows server 2016 VM on Azure • Remote Desktop client (built in windows) for accessing windows VM.
  • 22. ManageImplementAdviseEducate Hands On LAB • HOL 2: Installing Docker CE on Ubuntu Server 18.04 LTS • Pre-requisite: • Azure subscription • Basic Linux administration using bash shell. • Ubuntu Server 18.04 LTS VM on Azure • SSH Client (PuTTY or Git Bash or Ubuntu Bash)
  • 24. ManageImplementAdviseEducate Application types • A multi-layered monolith application • A distributed application / SOA • Micro-services • Containers do support all of them! • Monolith = Single large Container for App + DB Container • Distributed = Container for each Service / Module
  • 25. ManageImplementAdviseEducate A typical TWO TIER Application Front End App Container Back End App Container Back End App Container Back End App Container Front End App Container
  • 26. ManageImplementAdviseEducate Dockerfile • Automates the “Build” process of a container. • Integrates with all popular CI/CD tools. • Simple language to define entire build workflow • Basic system administration commands needed. • Windows : prefer powershell • Linux: prefer bash • Can be placed in SCM
  • 27. ManageImplementAdviseEducate Docker compose • A Tool for defining and deploying multi-container application. • Compose is a THREE STEP process • Define the application environment using Dockerfile • Define the services that make up your application using docker-compose.yml file • Run docker-compose up command to quickly run entire application in isolated environment. • Provides re-producible deployment artefacts. • Only recreates container that have changed. • Upon “restart” containers are spawned from “cached” versions if no change detected. • Supports environment variables • Supports “secrets” • Traditionally used for Single host deployment.
  • 30. ManageImplementAdviseEducate Dockerfile reference Command Description FROM Initializes a new build and define “base” image to be used for building. RUN A Step to be executed in build process. Can be used for installing necessary package. CMD Provide DEFAULT “startup” action for container. Must be used only ONCE. LABEL Provides additional META-DATA like Author name EXPOSE A Hint for port used by container, can be overridden at run-time. ENV Define environment variables. COPY Copy files from host system to container. NOTE : optional feature --chown for linux containers
  • 31. ManageImplementAdviseEducate Docker-compose reference Section Description Services: Define one or more service [YAML syntax] Build: Provide relative path to directory which contains “Dockerfile” Image: Provide image name using syntax: [repository-name]/[image-name]:[tag] For public images on docker-hub [repository-name] is dropped. Volumes: Define volumes to be mounted Networks: Define a private network for application. Labels: Additional meta-data
  • 32. ManageImplementAdviseEducate Demos • Demo 1: Deploying an application back-end and front-end as single application. • Demo 1-A Using MySQL with Wordpress • Demo 1-B Using MS-SQL with Asp.net core
  • 33. ManageImplementAdviseEducate Hands On • HOL 2] Deploying front-end application (ASP.NET core) and Back-end (MS SQL) using single docker-compose. • Use docker-compose to define entire application • Use existing VM created in HOL-1
  • 35. ManageImplementAdviseEducate Orchestration • Need for Orchestration • Ephemeral computing • Desired State • Cluster management • Container Orchestration platforms • Docker Swarm (from Docker Inc) • Kubernetes (from Google) • DC/OS (based on Apache Mesos) • Nomad (from HashiCorp)
  • 36. ManageImplementAdviseEducate Docker Swarm • Cluster management integrated with Docker engine • Decentralized design (for cluster management) • Declarative service model (ref: docker-compose) • Scaling • Desired state reconciliation • Multi-host networking • Service discovery • Load balancing
  • 37. ManageImplementAdviseEducate Kubernetes • Cluster managed from google with 10+ years of internal use by google. • Open source, run anywhere • Service discovery • Load balancing • Self healing • Storage orchestration • Scaling
  • 38. ManageImplementAdviseEducate DC/OS • Distributed OS based on Apache Mesos • Treat cluster as a single machine • High resource utilization • Container orchestration using “Marathon” • Cloud agnostic installation