SlideShare a Scribd company logo
From VMs to Containers:
Introducing Docker Containers for
Linux and Windows Server
Ido Flatow
Senior Architect, Sela Group
Microsoft MVP & RD
Level: Intermediate
The Problem
• Shipping code to server
The Matrix From Hell
The Solution
Docker Containers are NOT VMs
• Easy connection to make
• Fundamentally different architectures
• Fundamentally different benefits
VMs
Containers
Different, Not Mutually Exclusive
Build, Ship, Run, Any App Anywhere
Docker Concepts - Image
• What is a container image?
– Analogous to an Exported Virtual Machine’s VHD and Config files
– Templates for containers
– Can depend on other images
– Created by running a container and
capturing changes
Metadata
Name,
Creation Data,
Command To Execute,
Dependences
Contents
Docker Concepts - Registry
• https://hub.docker.com
• Official Docker images from known vendors
• Share and download Docker containers from
anywhere around the globe
• Or… create your own trusted Docker registry
for your images
Docker Concepts – Dockerfile
• Definition of a container
FROM ubuntu:14.04
RUN 
apt-get update && 
apt-get -y install apache2
COPY index.html /var/www/html/index.html
EXPOSE 80
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
Basic Docker Commands
$ docker pull # Download an image from a registry
$ docker images # List all images on a Docker host
$ docker build # Build an image from a Dockerfile
$ docker run # Run an image
$ docker commit # Create an image from a container
$ docker ps # List all running and stopped instances
$ docker stop # Stop a running instances
$ docker rm # Remove an instance
$ docker rmi # Remove an image
BASIC WEB APP
DEMO
OK, LET’S TALK ABOUT
WINDOWS CONTAINERS
What About Windows Containers?
Windows Containers vs.
Hyper V Containers
• Windows containers
– Native Windows
containers
– Powered by Docker
Engine
• Hyper V containers
– Windows containers +
kernel isolation
Infrastracture
Windows Server 2016
Docker Engine
Bins/Libs
App Bins/Libs
App
WS KernelBins/Libs
App
Windows containers
Hyper V containers
Dockerfile for Windows
FROM windowsservercore
# Uses dism.exe to install the IIS role
RUN dism.exe /online /enable-feature /all /featurename:iis-webserver
/NoRestart
# Creates an html file and add content to this file
RUN echo "Hello World - Dockerfile" > c:inetpubwwwrootindex.html
# Open cmd when the container runs from the new image
CMD [ "cmd" ]
WINDOWS AND DOCKER
DEMO
Docker, From Dev to Production
• Dev
– The developer knows best what his server needs
– No more “But It works my laptop” in a middle of a major deployment
• Test
– Spin a full testing environment on any server in just a few clicks
• Ops
– Ops don’t need to deal with the internal server configuration
– Free to manage the cluster’s health and scaling
• Production
– Manage your production in the most flexible way
– Scale in milliseconds
– Work in sync on multiple clouds
Full CI/CD with Docker
DOCKER HUB WITH GITHUB
DEMO
Docker File System
• Logical file system by grouping FS primitives into
branches (directories, file systems, snapshots)
• Each branch represents a layer in a Docker image
• Images can be constructed / deconstructed as
needed (vs. a huge monolithic image in VMs)
• When a container is started, a writeable layer is
added to the “top” of the file system
Container Layers
Docker Concepts - Volume
• Volumes provide data persistency
• Map a volume to a directory in the container
• Volumes persist after the container is deleted
• Can be created in a Dockerfile, or via CLI
• Can map to an existing directory on the host
• Use volumes to share data between
containers
DATA PERSISTENCY
DEMO
Container Mgmt. With Mesos
• Apache Mesos: cluster manager for
running applications on a scalable cluster
of servers
• Marathon: task runner framework for
Mesos that is designed to launch long-
running applications
• Makes it easier to deploy and manage
applications in large-scale clustered
environments:
• High-Availability
• Node Constraints
• Application Health Checks
• API & Service Discovery
AZURE CONTAINER SERVICES
DEMO
Getting Your Feet Wet
• Stroll on the beach
– Setup your preferred Docker environment
– Fire up some prebuilt images (nginx, hello-world)
• Take a swim
– Pick a well documented solution, such as Wordpress
– Build it for yourself (maybe you have a flower shop?)
• Dive in
– Dockerize an existing project
– Build your own Dockerfiles
– Experiment with Docker Compose and Docker clusters
Resources
• Know your Docker
– http://training.docker.com
– http://docs.docker.com/userguide
• Docker on Windows Server 2016
– https://blog.docker.com/2016/09/dockerforws2016/
• Docker on Azure (IaaS and PaaS)
– https://azure.microsoft.com/en-us/documentation/articles/virtual-
machines-linux-containers/
– https://azure.microsoft.com/en-us/services/container-service/
• My Info
– @IdoFlatow // idof@sela.co.il // http://www.idoflatow.net/downloads

More Related Content

PPTX
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
PPTX
The Essentials of Building Cloud-Based Web Apps with Azure
PDF
The RDBMS You Should Be Using
PPTX
IaaS azure_vs_amazon
PDF
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
PDF
Azure Virtual Machines Deployment Scenarios
PPTX
ContainerCon EU 2016 - Software-Defined Storage and Container Schedulers
PDF
be the captain of your connections deployment
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
The Essentials of Building Cloud-Based Web Apps with Azure
The RDBMS You Should Be Using
IaaS azure_vs_amazon
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
Azure Virtual Machines Deployment Scenarios
ContainerCon EU 2016 - Software-Defined Storage and Container Schedulers
be the captain of your connections deployment

What's hot (20)

PPTX
RavenDB 4.0
PPT
Java script anywhere. What Nombas was doing pre-acquisition.
PPTX
SCaLE 15x - How Container Schedulers and Software-Defined Storage will Change...
PPTX
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
PDF
Java EE microservices architecture - evolving the monolith
PPTX
8 Tools for Troubleshooting Windows 8
PDF
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
PPTX
Moving Windows Applications to the Cloud
PPTX
JavaEE Microservices platforms
PDF
Mongo db world 2014 nyc mongodb on azure - tips tricks and examples
PDF
RESTFul Tools For Lazy Experts - CFSummit 2016
PDF
KoprowskiT_SPBizConference_2AMaDisasterJustBegan
PPTX
SQL Server in DevOps Town Hall Webinar
PPTX
Cnam azure 2015 storage
PPTX
Automation 2.0 - Automation Tools for Hybrid Cloud Environments
PPTX
ServerTemplates - The Next Generation
PPTX
Build 2017 SQL Server in Dev Ops
PPTX
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
PDF
Face Off Domino vs Exchange On Premises
PPTX
Become an Automation Ninja in 60 Minutes
RavenDB 4.0
Java script anywhere. What Nombas was doing pre-acquisition.
SCaLE 15x - How Container Schedulers and Software-Defined Storage will Change...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
Java EE microservices architecture - evolving the monolith
8 Tools for Troubleshooting Windows 8
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
Moving Windows Applications to the Cloud
JavaEE Microservices platforms
Mongo db world 2014 nyc mongodb on azure - tips tricks and examples
RESTFul Tools For Lazy Experts - CFSummit 2016
KoprowskiT_SPBizConference_2AMaDisasterJustBegan
SQL Server in DevOps Town Hall Webinar
Cnam azure 2015 storage
Automation 2.0 - Automation Tools for Hybrid Cloud Environments
ServerTemplates - The Next Generation
Build 2017 SQL Server in Dev Ops
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
Face Off Domino vs Exchange On Premises
Become an Automation Ninja in 60 Minutes
Ad

Viewers also liked (20)

PPTX
Introduction to HTTP/2
PPTX
Building IoT and Big Data Solutions on Azure
PPTX
Debugging the Web with Fiddler
PPTX
Production debugging web applications
PPTX
Docker Demystified for SB JUG
PDF
Docker introduction
PPTX
Open stack + Containers + Hyper-V
PPS
Plantasmedicinales
PPTX
WebSphere Application Server Liberty Profile and Docker
PPTX
EF Core (RC2)
PPTX
What's New in WCF 4.5
PPTX
Powershell For Developers
PPTX
ASP.NET Core 1.0
PPTX
IIS for Developers
PPT
2 Linux Container and Docker
PPTX
Introducing HTTP/2
PPTX
Big data streaming with Apache Spark on Azure
PPTX
Go Serverless with Azure Functions
PPTX
PDF
Enterprise Data Workflows with Cascading and Windows Azure HDInsight
Introduction to HTTP/2
Building IoT and Big Data Solutions on Azure
Debugging the Web with Fiddler
Production debugging web applications
Docker Demystified for SB JUG
Docker introduction
Open stack + Containers + Hyper-V
Plantasmedicinales
WebSphere Application Server Liberty Profile and Docker
EF Core (RC2)
What's New in WCF 4.5
Powershell For Developers
ASP.NET Core 1.0
IIS for Developers
2 Linux Container and Docker
Introducing HTTP/2
Big data streaming with Apache Spark on Azure
Go Serverless with Azure Functions
Enterprise Data Workflows with Cascading and Windows Azure HDInsight
Ad

Similar to From VMs to Containers: Introducing Docker Containers for Linux and Windows Server (20)

PPTX
Dockerize the World - presentation from Hradec Kralove
PDF
Introduction to Docker - IndiaOpsUG
PPTX
Docker 101 - Nov 2016
PPTX
Docker
PPTX
Dockerize the World
PPTX
Developer workflow with docker
PPTX
Introduction to Docker - Getting Started with Docker
PDF
codemotion-docker-2014
PDF
Introduction to Containers - SQL Server and Docker
PPTX
Introduction to docker
PPTX
ma-formation-en-Docker-jlklk,nknkjn.pptx
PPTX
Containerization using docker and its applications
PPTX
Containerization using docker and its applications
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
PDF
Introduction to Docker Containers - Docker Captain
PDF
Cloud Native Computing - Part III - Containers
PPTX
Intro Docker october 2013
PDF
Docker for developers
PPTX
Docker for .NET Developers
PPTX
Docker 101
Dockerize the World - presentation from Hradec Kralove
Introduction to Docker - IndiaOpsUG
Docker 101 - Nov 2016
Docker
Dockerize the World
Developer workflow with docker
Introduction to Docker - Getting Started with Docker
codemotion-docker-2014
Introduction to Containers - SQL Server and Docker
Introduction to docker
ma-formation-en-Docker-jlklk,nknkjn.pptx
Containerization using docker and its applications
Containerization using docker and its applications
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Introduction to Docker Containers - Docker Captain
Cloud Native Computing - Part III - Containers
Intro Docker october 2013
Docker for developers
Docker for .NET Developers
Docker 101

More from Ido Flatow (12)

PPTX
Google Cloud IoT Core
PPTX
Introduction to HTTP/2
PPTX
Production Debugging War Stories
PPTX
Introduction to HTTP/2
PPTX
Debugging your Way through .NET with Visual Studio 2015
PPTX
Learning ASP.NET 5 and MVC 6
PDF
IaaS vs. PaaS: Windows Azure Compute Solutions
PPTX
ASP.NET Web API and HTTP Fundamentals
PPTX
Advanced WCF Workshop
PPTX
Debugging with Fiddler
PPTX
Caching in Windows Azure
PPTX
Automating Windows Azure
Google Cloud IoT Core
Introduction to HTTP/2
Production Debugging War Stories
Introduction to HTTP/2
Debugging your Way through .NET with Visual Studio 2015
Learning ASP.NET 5 and MVC 6
IaaS vs. PaaS: Windows Azure Compute Solutions
ASP.NET Web API and HTTP Fundamentals
Advanced WCF Workshop
Debugging with Fiddler
Caching in Windows Azure
Automating Windows Azure

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Machine learning based COVID-19 study performance prediction
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Big Data Technologies - Introduction.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Empathic Computing: Creating Shared Understanding
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
cuic standard and advanced reporting.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
MYSQL Presentation for SQL database connectivity
Mobile App Security Testing_ A Comprehensive Guide.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MIND Revenue Release Quarter 2 2025 Press Release
Machine learning based COVID-19 study performance prediction
Network Security Unit 5.pdf for BCA BBA.
Advanced methodologies resolving dimensionality complications for autism neur...
Big Data Technologies - Introduction.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Empathic Computing: Creating Shared Understanding
“AI and Expert System Decision Support & Business Intelligence Systems”
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Review of recent advances in non-invasive hemoglobin estimation
cuic standard and advanced reporting.pdf
Understanding_Digital_Forensics_Presentation.pptx
Spectral efficient network and resource selection model in 5G networks
Reach Out and Touch Someone: Haptics and Empathic Computing
MYSQL Presentation for SQL database connectivity

From VMs to Containers: Introducing Docker Containers for Linux and Windows Server

  • 1. From VMs to Containers: Introducing Docker Containers for Linux and Windows Server Ido Flatow Senior Architect, Sela Group Microsoft MVP & RD Level: Intermediate
  • 2. The Problem • Shipping code to server
  • 5. Docker Containers are NOT VMs • Easy connection to make • Fundamentally different architectures • Fundamentally different benefits
  • 6. VMs
  • 9. Build, Ship, Run, Any App Anywhere
  • 10. Docker Concepts - Image • What is a container image? – Analogous to an Exported Virtual Machine’s VHD and Config files – Templates for containers – Can depend on other images – Created by running a container and capturing changes Metadata Name, Creation Data, Command To Execute, Dependences Contents
  • 11. Docker Concepts - Registry • https://hub.docker.com • Official Docker images from known vendors • Share and download Docker containers from anywhere around the globe • Or… create your own trusted Docker registry for your images
  • 12. Docker Concepts – Dockerfile • Definition of a container FROM ubuntu:14.04 RUN apt-get update && apt-get -y install apache2 COPY index.html /var/www/html/index.html EXPOSE 80 CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
  • 13. Basic Docker Commands $ docker pull # Download an image from a registry $ docker images # List all images on a Docker host $ docker build # Build an image from a Dockerfile $ docker run # Run an image $ docker commit # Create an image from a container $ docker ps # List all running and stopped instances $ docker stop # Stop a running instances $ docker rm # Remove an instance $ docker rmi # Remove an image
  • 15. OK, LET’S TALK ABOUT WINDOWS CONTAINERS What About Windows Containers?
  • 16. Windows Containers vs. Hyper V Containers • Windows containers – Native Windows containers – Powered by Docker Engine • Hyper V containers – Windows containers + kernel isolation Infrastracture Windows Server 2016 Docker Engine Bins/Libs App Bins/Libs App WS KernelBins/Libs App Windows containers Hyper V containers
  • 17. Dockerfile for Windows FROM windowsservercore # Uses dism.exe to install the IIS role RUN dism.exe /online /enable-feature /all /featurename:iis-webserver /NoRestart # Creates an html file and add content to this file RUN echo "Hello World - Dockerfile" > c:inetpubwwwrootindex.html # Open cmd when the container runs from the new image CMD [ "cmd" ]
  • 19. Docker, From Dev to Production • Dev – The developer knows best what his server needs – No more “But It works my laptop” in a middle of a major deployment • Test – Spin a full testing environment on any server in just a few clicks • Ops – Ops don’t need to deal with the internal server configuration – Free to manage the cluster’s health and scaling • Production – Manage your production in the most flexible way – Scale in milliseconds – Work in sync on multiple clouds
  • 20. Full CI/CD with Docker
  • 21. DOCKER HUB WITH GITHUB DEMO
  • 22. Docker File System • Logical file system by grouping FS primitives into branches (directories, file systems, snapshots) • Each branch represents a layer in a Docker image • Images can be constructed / deconstructed as needed (vs. a huge monolithic image in VMs) • When a container is started, a writeable layer is added to the “top” of the file system
  • 24. Docker Concepts - Volume • Volumes provide data persistency • Map a volume to a directory in the container • Volumes persist after the container is deleted • Can be created in a Dockerfile, or via CLI • Can map to an existing directory on the host • Use volumes to share data between containers
  • 26. Container Mgmt. With Mesos • Apache Mesos: cluster manager for running applications on a scalable cluster of servers • Marathon: task runner framework for Mesos that is designed to launch long- running applications • Makes it easier to deploy and manage applications in large-scale clustered environments: • High-Availability • Node Constraints • Application Health Checks • API & Service Discovery
  • 28. Getting Your Feet Wet • Stroll on the beach – Setup your preferred Docker environment – Fire up some prebuilt images (nginx, hello-world) • Take a swim – Pick a well documented solution, such as Wordpress – Build it for yourself (maybe you have a flower shop?) • Dive in – Dockerize an existing project – Build your own Dockerfiles – Experiment with Docker Compose and Docker clusters
  • 29. Resources • Know your Docker – http://training.docker.com – http://docs.docker.com/userguide • Docker on Windows Server 2016 – https://blog.docker.com/2016/09/dockerforws2016/ • Docker on Azure (IaaS and PaaS) – https://azure.microsoft.com/en-us/documentation/articles/virtual- machines-linux-containers/ – https://azure.microsoft.com/en-us/services/container-service/ • My Info – @IdoFlatow // [email protected] // http://www.idoflatow.net/downloads

Editor's Notes

  • #7: Each virtualized application includes not only the application - which may be only 10s of MB - and the necessary binaries and libraries, but also an entire guest operating system - which may weigh 10s of GB.
  • #8: The Docker Engine container comprises just the application and its dependencies. It runs as an isolated process on the host operating system, sharing the kernel with other containers. Thus, it enjoys the resource isolation and allocation benefits of VMs but is much more portable and efficient.