SlideShare a Scribd company logo
1 of 54
Docker Fundamentals
James Sturtevant
@aspenwilder
//jamessturtevant.com
https://en.wikipedia.org/wiki/Malcom_McLean
Traditional virtual machines = hardware virtualization
VM VM VM
Traditional virtual machines = hardware virtualization
VM VM VM
Containers = Operating system virtualization
Traditional virtual machines = hardware virtualization
Applications
Kernel
VM VM VM
Containers = Operating system virtualization
Traditional virtual machines = hardware virtualization
Applications
Kernel
CONTAINER CONTAINER CONTAINER
VM VM VM
Server
Host OS
Hypervisor
Server
Host OS
Docker Engine
Guest
OS
Guest
OS
Guest
OS
Bins/Libs Bins/Libs Bins/Libs
App A App A’ App B
Bins/Libs Bins/Libs
AppA
AppA’
AppB
AppB’
AppB
AppB’
AppB
AppB’
Containers are isolated,
but share OS and, where
appropriate,
bins/libraries
Containers = Operating system virtualization
Traditional virtual machines = hardware virtualization
Applications
Kernel
CONTAINER CONTAINER CONTAINER
VM VM VM
Containers = Operating system virtualization
Traditional virtual machines = hardware virtualization
Applications
Kernel
CONTAINER CONTAINER CONTAINER
CONTAINER CONTAINER CONTAINER
Windows Server Containers
Maximum speed and density
VM VM VM
Containers = Operating system virtualization
Traditional virtual machines = hardware virtualization
CONTAINER CONTAINER CONTAINER
Windows Server Containers
Maximum speed and density
Kernel
CONTAINER
Kernel
CONTAINER
Kernel
CONTAINER
Hyper-V Containers
Isolation plus performance
Applications
Kernel
CONTAINER CONTAINER CONTAINER
VM VM VM
Fast Iterations
Rapid
Deployment
Reproducibility
Service
Separation
High
Availability
Test at ScaleOn Any Cloud Scalability
Reduced CostsImmutability
Read Layer
Read Layer
Read Layer
Read-Write Layer Container
Image
- ready-only (Immutable)
templates that help define
Docker containers
- Actual running instance of a container
(writable)
Docker Images
Docker Containers
A Dockerfile is your “recipe”
.
Automation and Management
Deploying Docker
Demands:
• Demand for you app grows (Scale & Redundancy)
• You add another external app (Multiple Services)
• You need internal app (More Services/ Independent Scale)
• You love this container thing (Batch processing)
• Machine failures (Redundancy/ Coordination)
Docker VM Docker VM Docker VM
Service 1
Service 2
Service 3
Docker VM
Service 4
Orchestration Solutions
Containers typically hosted across a cluster of nodes.
Orchestration is the automated arrangement, coordination, and
management of computer systems, middleware, and services.
Worker Node
Worker Node
Worker Node
App1
App2
Manager Node
Worker Node
Worker Node
Worker Node
App1
App2
Manager Node
Application
Infrastructure
Azure Container Service
Orchestrator
What about…
https://www.microsoft.com/en-us/cloud-platform/windows-server-pricing
Visual Studio Docker Tools
aka.ms/DockerToolsForVS
https://github.com/tripdubroot/ContainerCamp
https://marketplace.visualstudio.com/items?itemName
=PeterJausovec.vscode-docker
https://docs.microsoft.com/en-us/azure/container-
service/
https://docs.docker.com/
James Sturtevant
@aspenwilder
//jamessturtevant.com
Aka.ms/jsch9
Thank you!

More Related Content

What's hot

Ansible automation tool with modules
Ansible automation tool with modulesAnsible automation tool with modules
Ansible automation tool with modules
mohamedmoharam
 
플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포
흥래 김
 

What's hot (20)

Introduction to Amazon EC2 Container Service
Introduction to Amazon EC2 Container ServiceIntroduction to Amazon EC2 Container Service
Introduction to Amazon EC2 Container Service
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Docker in production
Docker in productionDocker in production
Docker in production
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
 
Docker Overview
Docker OverviewDocker Overview
Docker Overview
 
Ansible Configuration Management Tool 소개 및 활용
Ansible Configuration Management Tool 소개 및 활용 Ansible Configuration Management Tool 소개 및 활용
Ansible Configuration Management Tool 소개 및 활용
 
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
 
How Ansible Makes Automation Easy
How Ansible Makes Automation EasyHow Ansible Makes Automation Easy
How Ansible Makes Automation Easy
 
Ansible automation tool with modules
Ansible automation tool with modulesAnsible automation tool with modules
Ansible automation tool with modules
 
Docker toolbox
Docker toolboxDocker toolbox
Docker toolbox
 
Docker for the Rubyist
Docker for the RubyistDocker for the Rubyist
Docker for the Rubyist
 
Ansible Intro - June 2015 / Ansible Barcelona User Group
Ansible Intro - June 2015 / Ansible Barcelona User GroupAnsible Intro - June 2015 / Ansible Barcelona User Group
Ansible Intro - June 2015 / Ansible Barcelona User Group
 
Provisioning iOS CI Server with Ansible
Provisioning iOS CI Server with AnsibleProvisioning iOS CI Server with Ansible
Provisioning iOS CI Server with Ansible
 
Ansible - A 'crowd' introduction
Ansible - A 'crowd' introductionAnsible - A 'crowd' introduction
Ansible - A 'crowd' introduction
 
Mitchell Hashimoto, HashiCorp
Mitchell Hashimoto, HashiCorpMitchell Hashimoto, HashiCorp
Mitchell Hashimoto, HashiCorp
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and AnsibleLocal Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
 
플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포
 
Ansible module development 101
Ansible module development 101Ansible module development 101
Ansible module development 101
 
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
 

Similar to Docker and Azure - 0 to 60 mph

2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
Fabio Fumarola
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart Labs
DataStax Academy
 
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Amazon Web Services
 

Similar to Docker and Azure - 0 to 60 mph (20)

Windows 與 Azure 的容器旅程 @ Skilltree Day
Windows 與 Azure 的容器旅程 @ Skilltree DayWindows 與 Azure 的容器旅程 @ Skilltree Day
Windows 與 Azure 的容器旅程 @ Skilltree Day
 
Why do I need Kubernetes?
Why do I need Kubernetes?Why do I need Kubernetes?
Why do I need Kubernetes?
 
Ignite 2016 - Windows Containers
Ignite 2016 - Windows ContainersIgnite 2016 - Windows Containers
Ignite 2016 - Windows Containers
 
vSphere Integrated Containers 101 and End-User Workflow
vSphere Integrated Containers 101 and End-User WorkflowvSphere Integrated Containers 101 and End-User Workflow
vSphere Integrated Containers 101 and End-User Workflow
 
Container and Cloud Native Application: What is VMware doing in this space? -...
Container and Cloud Native Application: What is VMware doing in this space? -...Container and Cloud Native Application: What is VMware doing in this space? -...
Container and Cloud Native Application: What is VMware doing in this space? -...
 
Azure vidyapeeth -Introduction to Azure Container Service & Registry Service
Azure vidyapeeth -Introduction to Azure Container Service & Registry ServiceAzure vidyapeeth -Introduction to Azure Container Service & Registry Service
Azure vidyapeeth -Introduction to Azure Container Service & Registry Service
 
Erlang on OSv
Erlang on OSvErlang on OSv
Erlang on OSv
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
 
Introduction to Container Management on AWS
Introduction to Container Management on AWSIntroduction to Container Management on AWS
Introduction to Container Management on AWS
 
Virtual machines and containers
Virtual machines and containersVirtual machines and containers
Virtual machines and containers
 
July 2014 HUG : Privilege Isolation in Docker Containers
July 2014 HUG : Privilege Isolation in Docker ContainersJuly 2014 HUG : Privilege Isolation in Docker Containers
July 2014 HUG : Privilege Isolation in Docker Containers
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart Labs
 
7_OPEN17_Azure_Next-gen Development with PaaS & Containers
7_OPEN17_Azure_Next-gen Development with PaaS & Containers7_OPEN17_Azure_Next-gen Development with PaaS & Containers
7_OPEN17_Azure_Next-gen Development with PaaS & Containers
 
State of the Container Ecosystem
State of the Container EcosystemState of the Container Ecosystem
State of the Container Ecosystem
 
Virtual Container - Docker
Virtual Container - Docker Virtual Container - Docker
Virtual Container - Docker
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
 
From Monolith to Docker Distributed Applications
From Monolith to Docker Distributed ApplicationsFrom Monolith to Docker Distributed Applications
From Monolith to Docker Distributed Applications
 
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
 
An Introduction to Kubernetes and Continuous Delivery Fundamentals
An Introduction to Kubernetes and Continuous Delivery FundamentalsAn Introduction to Kubernetes and Continuous Delivery Fundamentals
An Introduction to Kubernetes and Continuous Delivery Fundamentals
 

Recently uploaded

Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
Overkill Security
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 

Recently uploaded (20)

الأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهلهالأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهله
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 

Docker and Azure - 0 to 60 mph

Editor's Notes

  1. Going to take you back to a time before shipping standards were in place.
  2. Going to take you back to a time before shipping standards were in place to frame the concept which was borrowed like so many others. Everything was loaded individual. Took lots of man power. Items would get mixed and matched. Items would be all over the ship.
  3. It was such a tough and demanding process that the were able to cut the savings by 39X. Imrpoved reliability by putting everything in the same conatieers. Faster load process. It was so revolutionary that today we can’t event image a situation with containers. Container techonology in software is likely to feel the same way in a few years. We won’t be able to dream a time with out it. As far as the cost saving goes I would say that you would likely see something similar if we were as good about tracking cost and effort in software. Im not sure that many of us are thought we are moving forward as in industry.
  4. We have had a similar technology through the use of VM’s in the past but it was very heavy weight. It is like have a boat carry boats of boats full of shipping containers. Big beefy machines to hold other machines With container technologies, to solution is much more light weight and is more like having the containers directly on the boat. You get a higher density of applications/verisons/services on one machine. This becomes really important for two reasons. First one is cost saving on you part. Less hardware is a good thing. Second we you start to talk at the scale like amazon or azure it means they can have higher density and that adds up quick and passing off saving to you. Another thing to note here is the share bins libraries. TRANSITION – OK you sold that containers are a good thing. How do I get started with Docker?
  5. Did I Mention about Docker Containers have been around for many years Docker Inc. did not invent them created open source software to build and manage containers Docker makes containers easy Docker provides a container packaging format creating a Docker hub ( a github of containers, more on it later)
  6. Namespaces and cnames. If you look through the source of linux you will not see the word container as we use it for this techonology   Cnames limit resources Namespaces change world view of the container by making them seem like they are the only one. Comon already…. Show me docker
  7. Hopefully docker’s logo makes sense to you now.
  8. Reporducibility Immutabliy On an cloud Scalablitliy Reduced costs - desinity
  9. There is a lot more to this but for now that is all you need to know. Think: objects are instantiation of class. Containers are instances of images. This is important later on during build. Brought to you by Union Mounts. (https://en.wikipedia.org/wiki/Union_mount)
  10. Interactive and telly type attached to it.
  11. Docker run hello-world docker run -it ubuntu /bin/bash Docker start –I <conainter id> Docker commit <container id> sample   for i in {1..20}; do docker run -d -p 80 tutum/hello-world; done   docker stop $(docker ps -q)
  12. How do you make these images and give commands and get files on to the containers?  The first FROM line tells Docker that we will use the official ASP.NET image on Docker Hub as our base image. The COPY line tells Docker that we will copy contents of this folder (.) to the /app directory of the container and the WORKDIR instruction will move to the /app directory. The RUN instruction tells Docker to run the dnu restore command to install the dependencies of the application. We do this before running out application for the first time. he EXPOSE instruction will inform Docker that this image has a service which will be listening at port 5004 (see project.json of the sample file for details). Lastly, the ENTRYPOINT instruction is the command executed to start the container and keep it up and running https://blogs.msdn.microsoft.com/webdev/2015/01/14/running-asp-net-5-applications-in-linux-containers-with-docker/
  13. Everytime you change your app you re-run this. docker build -t myapp . -t give it a name. Dot says to use files in the folder.
  14. Ok great but what do I do with them now? How do I share?
  15. Docker Hub and Docker Store Public, Official and Private image repositories Granular access controls with organization support Automated image build support Docker Trusted Registry Enterprise Grade Private Registries Runs on your infrastructure (on-prem or cloud) Active Directory and Role Based Access Controls Docker Registry Open source foundation of Hub and DTR Runs on your infrastructure (on-prem or cloud) as a container https://docs.docker.com/registry and or https://github.com/docker/distribution Azure Container Registry Currently in Preview Store your container image in local, network-close storage on Azure Use Azure Active Directory to manage access Manage Windows and Linux container images in a single registry
  16. Push to docker hub. Show Azure container registery.
  17. Shh into machine and run image previously created
  18. So far we have only talked about a single docker container but in reality you will have multiple. Here we have an example of an application with producer, queue, and analyzer (consumer) and web portal for the whole process. Here they are composed together as a single application and a single command lets you launch them all together. docker-compose up  https://github.com/rgardler/acs-demos
  19. Docker comose up
  20. So you love docker and it’s doing great for you but now your ready to scale and start adding services: You have First you add machines and scale your app add examples likes Next you have a new service Then you have a service but doesn’t need the scale so you only this is your first sign of trouble (how do you know where things are? You start to realize you really create these containers for all sorts of things including batch processing (Azure functions anyone?) Next you have a tasks that needs to scale but not just at the service level but 300 hundred to do some serious processing (image processing maybe?) this is you next issue (how do you determine where to run them given resource consumptions (memory/cpu/etc) Finally now that you have everything running what do you do when a machine goes down? Where do those containers go? Do they go anywhere? Do you even know that they are not running?
  21. Resources contraints on multiple servers Reliability/ scalling/ fault taulernace. Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively. Docker Swarm is native clustering for Docker. It turns a pool of Docker hosts into a single, virtual Docker host.
  22. Service Fabric supports orchestrating containers as well as processes across a cluster of machines. It can orchestrate anything  whether it’s a random exe, some java app, a containerized application, or an actual microservice that takes advantage of Service Fabric’s programming model APIs.
  23. Setting up the orchestrators so they are in VM scale sets, have security setup, subnets, load balaneer, etc, can get complicated.