dotnetConf LocalBengaluru | September 24, 2016
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
dotnetConf 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.9/24/2016 8:20 PM1
Deploying .NET Core applications using Docker ContainersSwaminathan VetriMicrosoft MVP@svswaminathanhttp://wannabeegeek.com
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
dotnetConf 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.9/24/2016 8:20 PM2
Shipping ManifestThe Big Picture for working with ContainersContainer VocabularyContainer ArchitectureMicro Services and Containerization .NET CoreVisual StudioVisual Studio Team ServicesAzure Container Service
VocabularyAgentClientComposeContainer DockerfileHostImage MasterOrchestratorRegistryScaffoldSchedulerSlaveTagVolume LayersLabelsRegistrySwarmContainer ServicesTagsServicePorts
CommandsDocker-Machine Create, Env, Ip, Start, Restart, ActiveDocker build, login, pull, push, run, search, tagDocker-Compose Up, Build, Scale
Container Lingua Franca
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Host OS - HardwareHyper VisorGuest OS #2Start on Earth Docker Hello-WorldDocker Containers and VMsGuest OS #1 (Virtual Machine)Docker Daemon
ServerHost OSHypervisorServerHost OSDocker EngineGuest OSGuest OSGuest OSBins/LibsBins/LibsBins/LibsApp AApp AApp BBins/LibsBins/LibsApp AApp AApp BApp BApp BApp BApp BApp BContainers are isolated, but share OS and, where appropriate, bins/libraries
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Demo
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Cool, but where did helloworld come from?
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
Docker RegistryStores docker imagesSearchablePublic Registry Hub.Docker.comPrivate Registries Instanced for youCan be hosted in Docker, Azure, AWS, Google,
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80DemoPS docker search microsoftNAME DESCRIPTION STARS OFFICIAL AUTOMATEDmicrosoft/dotnet Preview images for the .NET Core command l... 107 [OK]microsoft/azure-cli Docker image for Microsoft Azure Command L... 52 [OK]microsoft/iis Internet Information Services (IIS) instal... 11microsoft/oms Monitor your containers using the Operatio... 3 [OK]microsoft/applicationinsights Application Insights for Docker helps you ... 3 [OK]microsoft/sample-dotnet .NET Core running in a Nano Server container 1microsoft/dotnet35 1
PS docker pull microsoft/dotnetUsing default tag: latestlatest: Pulling from microsoft/aspnet604d05dfd165: Extracting [====================================================> ] 34.78 MB/37.19 MBa3ed95caeb02: Download completeaf271166b5e5: Download completeffff72610562: Pull complete82633c2ea8fc: Pull complete1ec63dc1715b: Downloading [=========================> ] 29.72 MB/64.67 MB9be54d5ae146: Pull completec3abf6246d6a: Pull completeDigest: sha256:cbbc0a7be0926d017ffd952799c4864c2c6cf812cbb70862bf2c8539401aa1e3Status: Downloaded newer image for microsoft/dotnet:latest
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
DOCKER_HOST
Images Cache
Containers
Registry
ClientDocker pullDocker daemon
Docker runDocker APIDotNetDotNetDotNet
DotNet
dotnetConf 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.9/24/2016 8:20 PM11
VocabularyHostA VM running the Docker Daemon to host a collection of Docker ContainersClientWhere docker commands are executed (client/server)Image An ordered collection of filesystems* to be used when instancing a container * see layers, later onContainer A runtime instance of an imageRegistryA collection of docker images
CommandsDocker runThe process of instancing an Image as a running containerDocker searchSearches the current registryDocker pullPulls a Docker Image to your Docker Host cache
Understanding the Docker Architecture
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Building Docker Images
Demo - buildPS dotnet newPS Code .# add a docker filePS dotnet build c releasePS dotnet publish c release o appPS Docker build t helloworld .Sending build context to Docker daemon 667.6 kBStep 1 : FROM microsoft/dotnet:1.0.0-rc2-core ---> c7a9cf9c81f5Step 2 : WORKDIR /app ---> Using cache ---> eb9360aaf982Step 3 : COPY /app /app ---> Using cache ---> 80e66eaa09e0Step 4 : ENTRYPOINT dotnet DotNetHelloWorld.dll ---> Using cache ---> e559e0c38fbdSuccessfully built e559e0c38fbdPS docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhelloworld latest ae30949a3358 5 seconds ago 242.4 MBPS docker run helloworldHello World!
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
Registry
DOCKER_HOST
Images
Containers
Docker build0001Program.cs110HelloWorld.dll111010111011011010Code/Binaries
ClientDocker buildDocker daemonFROM microsoft/dotnet:latestWORKDIR /appCOPY /app /appENTRYPOINT dotnet HelloWorld.dlldockerfile
Private Registry
Docker runDocker push
Demo push
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80VocabularyHostA VM running the Docker Daemon to host a collection of Docker ContainersImage An ordered collection of filesystems* to be used when instancing a containerContainer A runtime instance of an imageRegistryA collection of docker imagesDockerfileCommands to build a Docker image TagA version identifier for an image, plus the registry namedocker tag [registrypath]/image:[version]
CommandsDocker searchSearches the current registryDocker pullPulls a Docker Image to your Docker Host cacheDocker runThe process of instancing an Image as a running containerDocker loginLogs into the registry so you can push imagesDocker buildCreates an image, using a dockerfile as the definitionDocker tagRenames an image: [registryname]/[user]/[imagename]:[tag]Docker pushPushes an image to a registryUnderstanding the Docker Architecture
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
Host OSNetworking
DOCKER_HOST
Container1Docker daemon
docker0: 192.168.1.100:80:8001:8002:8003eth0: 172.17.0.2
Container2eth0: 172.17.0.3
Container3eth0: 172.17.0.4
Container4eth0: 172.17.0.5eth0: 10.100.2.100veth5998974veth473629aveth2726149bveth736321cDocker Networking uses NAT to route inbound traffic to each containerEach container can use the same port, internal to its container, but must be addressable outside by unique ports per HOST
Load Balancers and Service Discovery are new important topics
Note: networking may vary based on your orchestration engine
Docker Layers
ImageLayers.io
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Persistent StorageDocker Containers are ImmutableTo save data, you must provide external storageScenarios:LogsDatabase FilesInner Loop Development mounting your source
Volume Drivers
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Docker VolumeDocker run -v hostpath:/containerpathPS docker run -it -v /c/Users/Swami:/wormhole busybox/ # lsbin dev etc home proc root sys tmp usr var wormhole/ # cd wormhole/wormhole # touch a.txt/wormhole # touch b.txt/wormhole # lsa.txt b.txt/wormhole # cat a.txtHello from the other side of the wormhole/wormhole #
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Docker VolumeUsing VirtualBox (local), be sure to sit below c/Users, and confirm case sensitivity. (Linux)
*Docker for Windows beta makes this much easierhttp://beta.docker.com
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80VocabularyHostA VM running the Docker Daemon to host a collection of Docker ContainersImage An ordered collection of filesystems* to be used when instancing a container * see layers, later onContainer A runtime instance of an imageRegistryA collection of docker imagesDockerfileCommands to build a Docker image TagA version identifier for an imageVolumeA means to provide persistent storage from an immutable container
CommandsDocker runThe process of instancing an Image as a running containerDocker loginLogs into the registry so you can push imagesDocker buildCreates an image, using a dockerfile as the definitionDocker tagRenames an image: [registryname]/[user]/[imagename]:[tag]Docker pushPushes an image to a registryDocker run v h:cCreate a wormhole from the host to the container, represented as a volumeRefer to docker-compose for common usage scenarios
Docker-compose Volumes
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80You have a local Docker HOST local developmentSeveral hosts in Azure Dev/Test labs as part of your isolated development environmentNeed to troubleshoot issues in your clusterHow do you maintain and manage the certs for each?Working with multiple hosts
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
Docker-Machine.exeManages your various host configurationsStored in %USERPROFILE%\.docker\machine\
PS docker-machine lsNAME ACTIVE DRIVER STATE URL DOCKERdefault - virtualbox Running tcp://docker v1/10.1dockerhost-linux - azure Running tcp://dockerhost-linux.cloudapp.net:2376 v1.10.2PS docker-machine env dockerhost-linux$Env:DOCKER_TLS_VERIFY = "1"$Env:DOCKER_HOST = "tcp://dockerhost-linux.cloudapp.net:2376"$Env:DOCKER_CERT_PATH = "C:\Users\SteveLas\.docker\machine\machines\dockerhost-linux"$Env:DOCKER_MACHINE_NAME = "dockerhost-linux"# Run this command to configure your shell:# Docker-machine env dockerhost-linux | Invoke-ExpressionPS docker-machine activedockerhost-linuxPS docker-machine ip dockerhost-linuxdockerhost-linux.cloudapp.netNote: Docker Machine not required when working with Docker for Windows
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
Docker-Machine - CreateProvisions Docker Hosts In Azure Linux for now, Windows ComingPS docker-machine create -d azure --azure-subscription-id "[your azure sub id]" --azure-open-port 80 mydockerhost
Docker Docs - Docker-machine create -d azure... Azure Docs - Docker-machine create -d azure ...
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80CommandsDocker-machine createProvisions a VM with the Docker daemon installed and configured locally for useDocker-machine envSwitches between host entriesDocker-machine lsLists the currently configured hostsDocker-machine activeThe currently configured hostDocker-machine startStarts the named host required on reboot for VirtualBoxDocker-machine ipProvides the URI for the named host
Docker Docs - Docker-machine create -d azure... Azure Docs - Docker-machine create -d azure ...
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Instancing Multiple ServicesHow do you instance several different services at the same time?Are you building Micro Services?How to manage configurations between environments?
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Docker-Compose.exeAPI above docker runUsed to instance multiple containers 1:~Can reference dockerfiles and/or imagesPaired with docker-compose.yml
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
Local Development Environment
Integration
Registry
Production
Staging
Test
ClientContainer WorkflowSCCCIBuildTestsCompiled CodeDocker-compose.ymlBase Image
Docker-compose upDockerfileDocker build
Docker-composeDocker-composeDocker-composePushTest.envStag.envProd.envInt.envWrite/EditRunDebug
Docker push
Integration
Registry
Production
Staging
Test
Container WorkflowTests
Write/EditRunDebug
CDSchedulingOrchestration
Local Development Environment
CI/BuildEnvironment
SCCEnvironment
ASP.NET In Container DevelopmentEdit & RefreshBreakpoint Debugging
Integration
Azure Hosted Private Registry*
Production
Staging
Test
Visual Studio Code
Write/EditRunDebug
Visual Studio Team ServicesSource Code ControlBuild Continuous Integration3rd Party Integration:
VSTS Build Agents w/ Docker
VM Scale SetsAzure Container ServiceAzure Hosted Docker Private Registry
Azure Container Service
Visual Studio
Docker Language ServicesDocker Scaffolding w/yo docker
public registry
ASP.NET
Orchestration & Scheduling - Marathon / Docker Swarm
Docker Tools for Visual StudioScaffolds docker assetsDockerfile, docker-compose.yml, DockerTask.ps1Run and Test your code in a docker containerLinux today, Windows Nano coming soonEdit & Refresh of codeEnable F5 Start Debugging
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
DockerfileOptimized release version. Validate locally, deployed to production Dockerfile.debugLocal version, used for debuggingDocker-compose.ymlDeployed version, used to instance multiple containersDocker-compose.yml.debugLocal version, used for debuggingDockerTask.ps1PowerShell, to coordinate all the local operations. Similar to a makefileDocker.targets & Docker.propsUsed by Visual Studio to hook the F5 experienceSets the docker host. Blank Machine for Docker for Windows*launchSettings.jsonDocker entry point added to enable running in a Docker Container.
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Docker Steps to aide in your build, validate, push scenariosIntegrated with:GitHub for SCCJenkins for CI/CDVisual Studio Team Services
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
http://aka.ms/DockerToolsForVSTS
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Azure Container ServiceA platform for reliable, hyper scale, container-based applications
Azure Container ServiceHigh AvailabilityHyper-Scale
MicroservicesContainer hosts as cattleFlexible programming modelsAzure
Private cloud
Other clouds
Open Source OrchestrationHost cluster management
Open Source Container ManagementHigh AvailabilityHigh DensityPlacement ConstraintsFast startup & shutdownSelf-healing
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80Azure Container Service focusses on the configuration and management of the hosting infrastructure. We also provide key open source orchestration technologies. ACS does not provide an application development model. This has some advantages (e.g. more flexibility in application architecture) but some disadvantages (e.g. stateful applications need to be designed to manage their own state) 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.9/24/201638
Containers: a first class ARM resourceNew Resource ProviderDefines required resourcesLayered approachAgility to track innovationCommunity definedOpen Source and Open APIsPortabilityHosts become cattleNo need to manage themContainers are pets or cattleDepending on application
LayerSupported Technologies (2015)Configuration as CodeARM, Dockerfile, Docker ComposeHost cluster managementVM Scale SetsContainer orchestrationDocker Swarm, Chronos, Marathon, Apache MesosMonitoringOMS, App Insights
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
39
References:Toolsaka.ms/DockerToolsForVSaka.ms/DockerToolsForVSTSaka.ms/DockerToolsForVSCodeaka.ms/yodocker
Servicesaka.ms/AzureContainerServiceaka.ms/WindowsContainers
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
dotnetConf 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.9/24/2016 8:20 PM40
Questions/Feedback Swaminathan VetriMicrosoft MVP@svswaminathanhttp://wannabeegeek.com
GreenR:16 G:124 B:16OrangeR:216 G:59 B:1BlueR:0 G:120 B:215Light GrayR:210 G:210 B:210Light OrangeR:255 G:140 B:0YellowR:255 G:185 B:0Main colorsSecondary colors (use only when necessary)Dark RedR:168 G:0 B:0Light BlueR:16 G:124 B:16Dark BlueR0 G32 B80
dotnetConf 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.9/24/2016 8:20 PM41