SlideShare a Scribd company logo
1 of 34
Docker for .NET Developers
TASWAR BHATTI (MVP) SYSTEM ARCHITECT
@TASWARBHATTI GEMALTO
HTTP://TASWAR.ZEYTINSOFT.COM
Agenda
 What is Docker?
Images and Containers
Docker vs VM
Tooling around Docker
Dockerfile
Docker linking with other containers
Docker compose
Summary
History of Software Deployment
DevOps on your software
What is Docker?
- Lightweight, open, secure platform
- Simplify building, shipping, running apps
- Shipping container system for code
- Runs natively on Linux or Windows Server
- Runs on Windows or Mac Development machines (with a virtual machine or Hyper-V)
- Relies on "images" and "containers“
- Great for microservices system architecture design and deploy
Docker
Leading open-source containerization platform
Supported natively in Azure
Docker containers wrap up a piece of software
in a complete filesystem that contains
everything it needs to run: code, runtime,
system tools, system libraries – anything you
can install on a server. This guarantees that it
will always run the same, regardless of the
environment it is running in
Containers
Lightweight alternative to virtual machines
Smaller, less expensive, faster to start up, and self-contained
Host Operating System
Hypervisor
Guest OS
Libraries
App
Guest OS
Libraries
App
Guest OS
Libraries
App
Operating System
Container Engine
Libraries
App
Libraries
App
Libraries
App
Virtual Machines
Containers
Images and Containers
Docker Image
- Ubuntu, DotNet Core, Node etc
- An image is an inert, immutable, file essentially a snapshot of a container
- A read-only template composed of layered filesystems used to share common files
- Create Docker container instances
- Created by docker build command
- Stored in Docker registry (Docker Hub)
Docker Container
- Container is an instance of your image but running
- Using the docker run command
- An isolated and secured shipping container
- created from an image that can be run, started, stopped, moved and deleted
Docker Architecture
Docker CLI
Command-line interface for Docker, available for Linux, OS X, and Windows (available separately
or as part of Docker Toolbox)
Running a Container
docker run -i -t ubuntu /bin/bash
Common Docker CLI Commands
docker run - Use an image to run a container
docker pull - Pull an image from a registry
docker build - Build a Docker image
docker exec - Execute a command in a container
docker stop - Stop a running container
docker images - List available Docker images
docker ps - List running Docker containers
Is Docker only for Linux?
- Can I run my windows app Docker?
- Is Docker supported in Visual Studio?
Azure Container Service
Provides robust, ready-to-use Docker hosting environment
Uses open-source orchestration tools (DC/OS and Swarm)
Tools for Docker
- Install docker from https://docs.docker.com/
Docker tools for windows
- For windows 10 or windows 2016
◦ Contains Linux running under Hyper-V by default (MobyLinuxVM)
◦ Can be switched to use windows containers (nanoserver, windows 2016)
Kitematic
A GUI component for Docker
- Allows one to control the container (start, stop, remove, etc)
Demo of Kitematic
Dockerfile
- A dockerfile is a simple text file that contains the commands a user could call to assemble an
image.
Dockerfile (Sample)
FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app
RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]
EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000
ENTRYPOINT ["dotnet", "run"]
Dockerfile Best Practices
 Use .dockerignore
 Avoid unnecessary installed packages
Run one process per container
Minimize the number of layers
A container can be stopped and destroyed and a new one built and put in place with an
absolute minimum of set-up and configuration
Linking Docker Container Demo
Docker Compose
Docker compose
 Define and running multiple container applications
One can define it in one or multiple file
Docker-compose.yml (default file)
Docker-compose.dev.yml
Docker-compose.prod.yml
Use –f option to provide multiple files
Docker-compose.yml
version: ‘2’
services:
db:
image: mysql
volume:
- ./:/var/lib/mysql
ports:
- “3306:3306”
environment:
MYSQL_ROOT_PASSWORD: 123456
Demo VSCode and VS Docker Tool
Additional Resources
Self Paced Training by Docker - https://training.docker.com/category/self-paced-online
Julien Corioland, TE France: HOL to get started with Docker containers on Windows:
https://github.com/jcorioland/WindowsContainersHOL
Docker created content in partnership with Microsoft: Curated list of resources on Docker and
Windows Containers - coming directly from docker:
https://github.com/docker/community/blob/master/Docker-Meetup-Content/+Windows.md
Questions?
Contact: taswar@gmail.com
Twitter: @taswarbhatti
Web: http://taswar.zeytinsoft.com

More Related Content

What's hot

Webinar: Using Docker Multi-stage Build to Create Advanced Pipelines
Webinar: Using Docker Multi-stage Build to Create Advanced PipelinesWebinar: Using Docker Multi-stage Build to Create Advanced Pipelines
Webinar: Using Docker Multi-stage Build to Create Advanced PipelinesCodefresh
 
Docker 101 - Getting started
Docker 101 - Getting startedDocker 101 - Getting started
Docker 101 - Getting startedMatheus Marabesi
 
Say Bye to VMware PowerCLI ! Time to "GOVC"
Say Bye to VMware PowerCLI ! Time to "GOVC"Say Bye to VMware PowerCLI ! Time to "GOVC"
Say Bye to VMware PowerCLI ! Time to "GOVC"Ajeet Singh Raina
 
Webinar: Development Swarm Cluster with Docker Compose V3
Webinar: Development Swarm Cluster with Docker Compose V3Webinar: Development Swarm Cluster with Docker Compose V3
Webinar: Development Swarm Cluster with Docker Compose V3Codefresh
 
Webinar: Creating an Effective Docker Build Pipeline for Java Apps
Webinar: Creating an Effective Docker Build Pipeline for Java AppsWebinar: Creating an Effective Docker Build Pipeline for Java Apps
Webinar: Creating an Effective Docker Build Pipeline for Java AppsCodefresh
 
Setup a Dev environment that feels like $HOME on Windows 10
Setup a Dev environment that feels like $HOME on Windows 10Setup a Dev environment that feels like $HOME on Windows 10
Setup a Dev environment that feels like $HOME on Windows 10Stefan Scherer
 
Docker intro
Docker introDocker intro
Docker introOleg Z
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Herofazalraja
 
Windows server containers
Windows server containersWindows server containers
Windows server containersSri Kanth
 
Docker multi-stage build
Docker multi-stage buildDocker multi-stage build
Docker multi-stage buildAlexei Ledenev
 
Docker - A container full of Chocolatey
Docker - A container full of ChocolateyDocker - A container full of Chocolatey
Docker - A container full of ChocolateyStefan Scherer
 
CloudExpo 2018: Docker - Power Your Move to the Cloud
CloudExpo 2018: Docker - Power Your Move to the CloudCloudExpo 2018: Docker - Power Your Move to the Cloud
CloudExpo 2018: Docker - Power Your Move to the CloudElton Stoneman
 
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...Eric Smalling
 
CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumSreenivas Makam
 
Introduction to Docker Compose | Docker Intermediate Workshop
Introduction to Docker Compose | Docker Intermediate WorkshopIntroduction to Docker Compose | Docker Intermediate Workshop
Introduction to Docker Compose | Docker Intermediate WorkshopAjeet Singh Raina
 

What's hot (20)

presentation on Docker
presentation on Dockerpresentation on Docker
presentation on Docker
 
Webinar: Using Docker Multi-stage Build to Create Advanced Pipelines
Webinar: Using Docker Multi-stage Build to Create Advanced PipelinesWebinar: Using Docker Multi-stage Build to Create Advanced Pipelines
Webinar: Using Docker Multi-stage Build to Create Advanced Pipelines
 
Docker 101 - Getting started
Docker 101 - Getting startedDocker 101 - Getting started
Docker 101 - Getting started
 
Say Bye to VMware PowerCLI ! Time to "GOVC"
Say Bye to VMware PowerCLI ! Time to "GOVC"Say Bye to VMware PowerCLI ! Time to "GOVC"
Say Bye to VMware PowerCLI ! Time to "GOVC"
 
Webinar: Development Swarm Cluster with Docker Compose V3
Webinar: Development Swarm Cluster with Docker Compose V3Webinar: Development Swarm Cluster with Docker Compose V3
Webinar: Development Swarm Cluster with Docker Compose V3
 
Webinar: Creating an Effective Docker Build Pipeline for Java Apps
Webinar: Creating an Effective Docker Build Pipeline for Java AppsWebinar: Creating an Effective Docker Build Pipeline for Java Apps
Webinar: Creating an Effective Docker Build Pipeline for Java Apps
 
The Power of Docker
The Power of DockerThe Power of Docker
The Power of Docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Setup a Dev environment that feels like $HOME on Windows 10
Setup a Dev environment that feels like $HOME on Windows 10Setup a Dev environment that feels like $HOME on Windows 10
Setup a Dev environment that feels like $HOME on Windows 10
 
Docker intro
Docker introDocker intro
Docker intro
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
 
Windows server containers
Windows server containersWindows server containers
Windows server containers
 
Docker multi-stage build
Docker multi-stage buildDocker multi-stage build
Docker multi-stage build
 
Docker basics
Docker basicsDocker basics
Docker basics
 
Docker - A container full of Chocolatey
Docker - A container full of ChocolateyDocker - A container full of Chocolatey
Docker - A container full of Chocolatey
 
CloudExpo 2018: Docker - Power Your Move to the Cloud
CloudExpo 2018: Docker - Power Your Move to the CloudCloudExpo 2018: Docker - Power Your Move to the Cloud
CloudExpo 2018: Docker - Power Your Move to the Cloud
 
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
 
CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and Tutum
 
Introduction to Docker Compose | Docker Intermediate Workshop
Introduction to Docker Compose | Docker Intermediate WorkshopIntroduction to Docker Compose | Docker Intermediate Workshop
Introduction to Docker Compose | Docker Intermediate Workshop
 
Azure Container Services
Azure Container Services Azure Container Services
Azure Container Services
 

Viewers also liked

StackExchange.redis
StackExchange.redisStackExchange.redis
StackExchange.redisLarry Nung
 
Nodejs for .NET web developers
Nodejs for .NET web developersNodejs for .NET web developers
Nodejs for .NET web developersUgo Lattanzi
 
Cross platform configuration management using Desired State Configuration
Cross platform configuration management using Desired State ConfigurationCross platform configuration management using Desired State Configuration
Cross platform configuration management using Desired State ConfigurationRavikanth Chaganti
 
2014 12-03 - docker devops-tours
2014 12-03 - docker devops-tours2014 12-03 - docker devops-tours
2014 12-03 - docker devops-toursGuillaume Polaert
 
Modern devOps with Docker
Modern devOps with DockerModern devOps with Docker
Modern devOps with DockerAvi Cavale
 
Docker and DevOps - Why it matters
Docker and DevOps - Why it mattersDocker and DevOps - Why it matters
Docker and DevOps - Why it mattersJeremy Brown
 
Modern DevOps with Docker
Modern DevOps with DockerModern DevOps with Docker
Modern DevOps with DockerShippable
 
Microservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyondMicroservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyondDonnie Berkholz
 
Docker Enables DevOps
Docker Enables DevOpsDocker Enables DevOps
Docker Enables DevOpsBoyd Hemphill
 
A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersJérôme Petazzoni
 
Why Docker
Why DockerWhy Docker
Why DockerdotCloud
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 

Viewers also liked (16)

VIRTUAL RECURSOS HUMANO
VIRTUAL  RECURSOS HUMANOVIRTUAL  RECURSOS HUMANO
VIRTUAL RECURSOS HUMANO
 
StackExchange.redis
StackExchange.redisStackExchange.redis
StackExchange.redis
 
Nodejs for .NET web developers
Nodejs for .NET web developersNodejs for .NET web developers
Nodejs for .NET web developers
 
Cross platform configuration management using Desired State Configuration
Cross platform configuration management using Desired State ConfigurationCross platform configuration management using Desired State Configuration
Cross platform configuration management using Desired State Configuration
 
2014 12-03 - docker devops-tours
2014 12-03 - docker devops-tours2014 12-03 - docker devops-tours
2014 12-03 - docker devops-tours
 
Owin and Katana
Owin and KatanaOwin and Katana
Owin and Katana
 
Docker with devops program
Docker with devops programDocker with devops program
Docker with devops program
 
Modern devOps with Docker
Modern devOps with DockerModern devOps with Docker
Modern devOps with Docker
 
Docker and DevOps - Why it matters
Docker and DevOps - Why it mattersDocker and DevOps - Why it matters
Docker and DevOps - Why it matters
 
Modern DevOps with Docker
Modern DevOps with DockerModern DevOps with Docker
Modern DevOps with Docker
 
Microservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyondMicroservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyond
 
Docker Enables DevOps
Docker Enables DevOpsDocker Enables DevOps
Docker Enables DevOps
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things Containers
 
Why Docker
Why DockerWhy Docker
Why Docker
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 

Similar to Docker for .NET Developers

Docker
DockerDocker
DockerNarato
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안양재동 코드랩
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsMicael Gallego
 
ExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and JenkinsExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and JenkinsElasTest Project
 
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 Developmentmsyukor
 
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 AnandPRIYADARSHINI ANAND
 
Docker 1.9 Workshop
Docker 1.9 WorkshopDocker 1.9 Workshop
Docker 1.9 Workshop{code}
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101Naukri.com
 
Introduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of TechnologyIntroduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of TechnologyAjeet Singh Raina
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux ContainerBalaji Rajan
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 applicationRoman Rodomansky
 

Similar to Docker for .NET Developers (20)

Docker
DockerDocker
Docker
 
Docker In Brief
Docker In BriefDocker In Brief
Docker In Brief
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Docker how to
Docker how toDocker how to
Docker how to
 
Docker intro
Docker introDocker intro
Docker intro
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
 
ExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and JenkinsExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and Jenkins
 
Docker slides
Docker slidesDocker slides
Docker slides
 
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
 
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
 
How to _docker
How to _dockerHow to _docker
How to _docker
 
Docker 1.9 Workshop
Docker 1.9 WorkshopDocker 1.9 Workshop
Docker 1.9 Workshop
 
Let's dockerize
Let's dockerizeLet's dockerize
Let's dockerize
 
Docker - fundamental
Docker  - fundamentalDocker  - fundamental
Docker - fundamental
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
 
Introduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of TechnologyIntroduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of Technology
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 

More from Taswar Bhatti

Get productive with python Visual Studio 2019
Get productive with python Visual Studio 2019Get productive with python Visual Studio 2019
Get productive with python Visual Studio 2019Taswar Bhatti
 
Nodejsvault austin2019
Nodejsvault austin2019Nodejsvault austin2019
Nodejsvault austin2019Taswar Bhatti
 
Cloud patterns forwardjs April Ottawa 2019
Cloud patterns forwardjs April Ottawa 2019Cloud patterns forwardjs April Ottawa 2019
Cloud patterns forwardjs April Ottawa 2019Taswar Bhatti
 
Micrsoft Ignite Toronto - BRK3508 - 8 Cloud Design Patterns you ought to know
Micrsoft Ignite Toronto - BRK3508 - 8 Cloud Design Patterns you ought to knowMicrsoft Ignite Toronto - BRK3508 - 8 Cloud Design Patterns you ought to know
Micrsoft Ignite Toronto - BRK3508 - 8 Cloud Design Patterns you ought to knowTaswar Bhatti
 
Managing your secrets in a cloud environment
Managing your secrets in a cloud environmentManaging your secrets in a cloud environment
Managing your secrets in a cloud environmentTaswar Bhatti
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018Taswar Bhatti
 
Intro elasticsearch taswarbhatti
Intro elasticsearch taswarbhattiIntro elasticsearch taswarbhatti
Intro elasticsearch taswarbhattiTaswar Bhatti
 
Cloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsCloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsTaswar Bhatti
 
Using Vault for your Nodejs Secrets
Using Vault for your Nodejs SecretsUsing Vault for your Nodejs Secrets
Using Vault for your Nodejs SecretsTaswar Bhatti
 
Azure Key Vault - Getting Started
Azure Key Vault - Getting StartedAzure Key Vault - Getting Started
Azure Key Vault - Getting StartedTaswar Bhatti
 
Cloud patterns at Carleton University
Cloud patterns at Carleton UniversityCloud patterns at Carleton University
Cloud patterns at Carleton UniversityTaswar Bhatti
 
Cloud Design Patterns
Cloud Design PatternsCloud Design Patterns
Cloud Design PatternsTaswar Bhatti
 
Devteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystifiedDevteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystifiedTaswar Bhatti
 
Devteach 2017 Store 2 million of audit a day into elasticsearch
Devteach 2017 Store 2 million of audit a day into elasticsearchDevteach 2017 Store 2 million of audit a day into elasticsearch
Devteach 2017 Store 2 million of audit a day into elasticsearchTaswar Bhatti
 
An introduction to Microsoft Bot Framework
An introduction to Microsoft Bot FrameworkAn introduction to Microsoft Bot Framework
An introduction to Microsoft Bot FrameworkTaswar Bhatti
 
Dev days 1 Introduction to Xamarin Taswar Bhatti
Dev days 1 Introduction to Xamarin Taswar BhattiDev days 1 Introduction to Xamarin Taswar Bhatti
Dev days 1 Introduction to Xamarin Taswar BhattiTaswar Bhatti
 
Xamarin forms introduction by Taswar Bhatti and Ahmed Assad
Xamarin forms introduction by Taswar Bhatti and Ahmed AssadXamarin forms introduction by Taswar Bhatti and Ahmed Assad
Xamarin forms introduction by Taswar Bhatti and Ahmed AssadTaswar Bhatti
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET DevelopersTaswar Bhatti
 
Akka.Net Ottawa .NET User Group Meetup
Akka.Net Ottawa .NET User Group Meetup Akka.Net Ottawa .NET User Group Meetup
Akka.Net Ottawa .NET User Group Meetup Taswar Bhatti
 

More from Taswar Bhatti (19)

Get productive with python Visual Studio 2019
Get productive with python Visual Studio 2019Get productive with python Visual Studio 2019
Get productive with python Visual Studio 2019
 
Nodejsvault austin2019
Nodejsvault austin2019Nodejsvault austin2019
Nodejsvault austin2019
 
Cloud patterns forwardjs April Ottawa 2019
Cloud patterns forwardjs April Ottawa 2019Cloud patterns forwardjs April Ottawa 2019
Cloud patterns forwardjs April Ottawa 2019
 
Micrsoft Ignite Toronto - BRK3508 - 8 Cloud Design Patterns you ought to know
Micrsoft Ignite Toronto - BRK3508 - 8 Cloud Design Patterns you ought to knowMicrsoft Ignite Toronto - BRK3508 - 8 Cloud Design Patterns you ought to know
Micrsoft Ignite Toronto - BRK3508 - 8 Cloud Design Patterns you ought to know
 
Managing your secrets in a cloud environment
Managing your secrets in a cloud environmentManaging your secrets in a cloud environment
Managing your secrets in a cloud environment
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018
 
Intro elasticsearch taswarbhatti
Intro elasticsearch taswarbhattiIntro elasticsearch taswarbhatti
Intro elasticsearch taswarbhatti
 
Cloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsCloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong Codeaholics
 
Using Vault for your Nodejs Secrets
Using Vault for your Nodejs SecretsUsing Vault for your Nodejs Secrets
Using Vault for your Nodejs Secrets
 
Azure Key Vault - Getting Started
Azure Key Vault - Getting StartedAzure Key Vault - Getting Started
Azure Key Vault - Getting Started
 
Cloud patterns at Carleton University
Cloud patterns at Carleton UniversityCloud patterns at Carleton University
Cloud patterns at Carleton University
 
Cloud Design Patterns
Cloud Design PatternsCloud Design Patterns
Cloud Design Patterns
 
Devteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystifiedDevteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystified
 
Devteach 2017 Store 2 million of audit a day into elasticsearch
Devteach 2017 Store 2 million of audit a day into elasticsearchDevteach 2017 Store 2 million of audit a day into elasticsearch
Devteach 2017 Store 2 million of audit a day into elasticsearch
 
An introduction to Microsoft Bot Framework
An introduction to Microsoft Bot FrameworkAn introduction to Microsoft Bot Framework
An introduction to Microsoft Bot Framework
 
Dev days 1 Introduction to Xamarin Taswar Bhatti
Dev days 1 Introduction to Xamarin Taswar BhattiDev days 1 Introduction to Xamarin Taswar Bhatti
Dev days 1 Introduction to Xamarin Taswar Bhatti
 
Xamarin forms introduction by Taswar Bhatti and Ahmed Assad
Xamarin forms introduction by Taswar Bhatti and Ahmed AssadXamarin forms introduction by Taswar Bhatti and Ahmed Assad
Xamarin forms introduction by Taswar Bhatti and Ahmed Assad
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
Akka.Net Ottawa .NET User Group Meetup
Akka.Net Ottawa .NET User Group Meetup Akka.Net Ottawa .NET User Group Meetup
Akka.Net Ottawa .NET User Group Meetup
 

Recently uploaded

Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxAn introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxPurva Nikam
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniquesugginaramesh
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 

Recently uploaded (20)

Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxAn introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptx
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniques
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 

Docker for .NET Developers

  • 1. Docker for .NET Developers TASWAR BHATTI (MVP) SYSTEM ARCHITECT @TASWARBHATTI GEMALTO HTTP://TASWAR.ZEYTINSOFT.COM
  • 2. Agenda  What is Docker? Images and Containers Docker vs VM Tooling around Docker Dockerfile Docker linking with other containers Docker compose Summary
  • 3. History of Software Deployment
  • 4. DevOps on your software
  • 5.
  • 6.
  • 7. What is Docker? - Lightweight, open, secure platform - Simplify building, shipping, running apps - Shipping container system for code - Runs natively on Linux or Windows Server - Runs on Windows or Mac Development machines (with a virtual machine or Hyper-V) - Relies on "images" and "containers“ - Great for microservices system architecture design and deploy
  • 8. Docker Leading open-source containerization platform Supported natively in Azure Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in
  • 9. Containers Lightweight alternative to virtual machines Smaller, less expensive, faster to start up, and self-contained Host Operating System Hypervisor Guest OS Libraries App Guest OS Libraries App Guest OS Libraries App Operating System Container Engine Libraries App Libraries App Libraries App Virtual Machines Containers
  • 10.
  • 12. Docker Image - Ubuntu, DotNet Core, Node etc - An image is an inert, immutable, file essentially a snapshot of a container - A read-only template composed of layered filesystems used to share common files - Create Docker container instances - Created by docker build command - Stored in Docker registry (Docker Hub)
  • 13. Docker Container - Container is an instance of your image but running - Using the docker run command - An isolated and secured shipping container - created from an image that can be run, started, stopped, moved and deleted
  • 15.
  • 16. Docker CLI Command-line interface for Docker, available for Linux, OS X, and Windows (available separately or as part of Docker Toolbox)
  • 17. Running a Container docker run -i -t ubuntu /bin/bash
  • 18. Common Docker CLI Commands docker run - Use an image to run a container docker pull - Pull an image from a registry docker build - Build a Docker image docker exec - Execute a command in a container docker stop - Stop a running container docker images - List available Docker images docker ps - List running Docker containers
  • 19. Is Docker only for Linux? - Can I run my windows app Docker? - Is Docker supported in Visual Studio?
  • 20. Azure Container Service Provides robust, ready-to-use Docker hosting environment Uses open-source orchestration tools (DC/OS and Swarm)
  • 21. Tools for Docker - Install docker from https://docs.docker.com/
  • 22. Docker tools for windows - For windows 10 or windows 2016 ◦ Contains Linux running under Hyper-V by default (MobyLinuxVM) ◦ Can be switched to use windows containers (nanoserver, windows 2016)
  • 23. Kitematic A GUI component for Docker - Allows one to control the container (start, stop, remove, etc)
  • 25. Dockerfile - A dockerfile is a simple text file that contains the commands a user could call to assemble an image.
  • 26. Dockerfile (Sample) FROM microsoft/dotnet:latest COPY . /app WORKDIR /app RUN ["dotnet", "restore"] RUN ["dotnet", "build"] EXPOSE 5000/tcp ENV ASPNETCORE_URLS http://*:5000 ENTRYPOINT ["dotnet", "run"]
  • 27. Dockerfile Best Practices  Use .dockerignore  Avoid unnecessary installed packages Run one process per container Minimize the number of layers A container can be stopped and destroyed and a new one built and put in place with an absolute minimum of set-up and configuration
  • 30. Docker compose  Define and running multiple container applications One can define it in one or multiple file Docker-compose.yml (default file) Docker-compose.dev.yml Docker-compose.prod.yml Use –f option to provide multiple files
  • 31. Docker-compose.yml version: ‘2’ services: db: image: mysql volume: - ./:/var/lib/mysql ports: - “3306:3306” environment: MYSQL_ROOT_PASSWORD: 123456
  • 32. Demo VSCode and VS Docker Tool
  • 33. Additional Resources Self Paced Training by Docker - https://training.docker.com/category/self-paced-online Julien Corioland, TE France: HOL to get started with Docker containers on Windows: https://github.com/jcorioland/WindowsContainersHOL Docker created content in partnership with Microsoft: Curated list of resources on Docker and Windows Containers - coming directly from docker: https://github.com/docker/community/blob/master/Docker-Meetup-Content/+Windows.md

Editor's Notes

  1. Docker (www.docker.com) isn't the world's only containerization platform, but it is the most popular. It is free, open-source, and Linux-based, with Windows support (Windows Server 2016) in the works. It has earned massive mindshare in the developer community. And with Azure Container Service, you can deploy Docker containers to Azure with minimal effort. Moreover, Docker containers are easily moved between Azure and Amazon Web Services (AWS), affording developers portability between cloud platforms.
  2. A virtual machine is -- well -- a virtualized machine created and managed by a hypervisor such as VirtualBox or Hyper-V. Even though a VM runs on a machine that has an operating system, each VM requires its own complete operating system, even if it's the same operating system as the host OS. VMs offer a very high degree of isolation, but at a cost: longer startup times, lower portability (ever tried to move a 127 GB virtual hard disk, or VHD, from one PC to another?), and higher memory requirements. Containers, by contrast, leverage the operating system that is already in place but offer nearly as much separation. RAM requirements are lower since the OS isn't being duplicated in each container, and cost is lower, too, because while cloud platforms typically charge for each VM, a single VM can host multiple container instances.
  3. Docker Image is the image of your software, and a container is the running software
  4. Docker utilizes a client-server architecture. You execute Docker commands through a Docker client such as the Docker CLI or Kitematic. The client uses REST commands to communicate with the Docker daemon running on a Docker host such as the Azure Container services. These commands can be used to push, pull (docker pull), and create Docker images, to run them in containers, and to manage those containers. Images can be built with the docker build command, and they can be stand-alone, or they can "inherit" from other images. Images are stored in Docker registries, which can be public or private, local or remote. Docker Hub is a popular public registry that is managed by Docker; it contains a "huge collection" of images that anyone may use. The docker run command runs a container using an image as a template.
  5. The Docker Client, also known as the Docker CLI, is the primary tool you use to manage Docker containers. You can download container images from repositories such as Docker Hub, build container images, run container instances, list container images and instances, and much more. After connecting to Azure Container Service using SSH, you can use port forwarding to execute commands locally that act on an Azure Container Service running in the cloud. In this example, the -H switch used with the docker commands forwards commands sent to port 22375 on localhost to the Azure Container Services via SSH.
  6. This command pulls the image named "Ubuntu" from Docker Hub (or a local registry if the image is cached there) and runs it interactively in a container. "Interactively" means standard input, output, and error are connected locally so you can provide input to the container and see its output. Of course, you are not limited to the "Ubuntu" image. You can specify other images and even create images of your own with docker build. Where the container runs depends on the context. The container can run locally in a docker host (for example, a VM on Windows), or it can remotely if you connect to a remote Docker daemon (for example, one running in Azure) via SSH tunneling and use port forwarding to forward docker commands to the daemon.
  7. These are some of the most commonly used docker commands. You can also use docker push to push an image to a registry such as Docker Hub. Also, docker ps is often accompanied by a -a switch to list all containers, including those that are no longer running, while docker rm and docker rmi are used to delete (remove) containers and images, respectively. The docker build command uses a Dockerfile (a text file containing build commands) and a "context" -- for example, a specified directory in the file system -- to build Docker images.
  8. From the documentation: "Azure Container Service makes it simpler for you to create, configure, and manage a cluster of virtual machines that are preconfigured to run containerized applications. It uses an optimized configuration of popular open-source scheduling and orchestration tools. This enables you to use your existing skills, or draw upon a large and growing body of community expertise, to deploy and manage container-based applications on Microsoft Azure." ACS supports Linux containers and Windows containers. The latter rely on Windows Server 2016.