Download - DevOps'ing Containers
![Page 1: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/1.jpg)
@stuartleeks
DevOps’ing with ContainersStuart LeeksTechnical EvangelistMicrosoft
![Page 2: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/2.jpg)
@stuartleeks
Containers…won’t create world peace
![Page 3: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/3.jpg)
@stuartleeks
You don’t have to use containers
![Page 4: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/4.jpg)
@stuartleeks
≠
![Page 5: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/5.jpg)
@stuartleeks
≠
![Page 6: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/6.jpg)
@stuartleeks
Containers Microservices
![Page 7: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/7.jpg)
@stuartleeks
Containers…won’t create world peace
![Page 8: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/8.jpg)
@stuartleeks
Dockerhttps://www.flickr.com/photos/anaulin/1047673820/
![Page 9: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/9.jpg)
@stuartleeks
![Page 10: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/10.jpg)
@stuartleeks
Hypervisor
Host OS
Server
Guest OS Guest OS
Bins/Libs Bins/Libs
App A App B
Virtual Machines
Docker Engine
Host OS
Server
Bins/Libs Bins/Libs
App A App B
Docker
Docker
![Page 11: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/11.jpg)
@stuartleeks
DEMO…
Docker
![Page 12: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/12.jpg)
@stuartleeks
FROM microsoft/dotnet:1.0.1
COPY . /appWORKDIR /app
RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]
EXPOSE 5000
ENTRYPOINT ["dotnet", "run"]
Dockerfile
![Page 13: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/13.jpg)
@stuartleeks
FROM microsoft/dotnet:1.0.1
COPY project.json /app/project.jsonRUN ["dotnet", "restore"]
COPY . /appWORKDIR /app
RUN ["dotnet", "build"]
EXPOSE 5000
ENTRYPOINT ["dotnet", "run"]
Dockerfile
![Page 14: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/14.jpg)
@stuartleeks
# run dotnet publish before building ;-)FROM microsoft/dotnet:1.0.1
COPY published /appWORKDIR /app
EXPOSE 5000
ENTRYPOINT ["dotnet", "myapp.dll"]
Dockerfile
![Page 15: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/15.jpg)
@stuartleeks
hub.docker.com etc
Docker image registry service• Docker Hub• Docker Trusted Registry• Docker Registry• Azure Container Registry
docker push/pull
![Page 16: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/16.jpg)
@stuartleeks
hub.docker.com etc
Docker Hub
Dev
push
Host
pull
![Page 17: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/17.jpg)
@stuartleeks
$ docker pull
$ docker run
Host
![Page 18: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/18.jpg)
@stuartleeks
Host
$ docker –H host pull
$ docker –H host run
Admin Docker API
![Page 19: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/19.jpg)
@stuartleeks
$ docker –H host1 run
$ docker –H host2 run
$ docker –H hostn run
Admin
Host1
Host2
Hostn
......
![Page 20: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/20.jpg)
@stuartleeks
Docker Swarm
$ docker –H host pull
$ docker –H host run
Admin
Docker API
Load balancer
Management Agents
Load balancer
...
![Page 21: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/21.jpg)
@stuartleeks
version: '2' services: chess: image: stuartleeks/chesstest ports: - 80:5000 environment: mongodbConnectionString: mongodb://mongo:27017 ApplicationInsights__InstrumentationKey: $APPINSIGHTS_KEY mongo: image: mongo volumes: - mongo-data:/data/dbvolumes: mongo-data: {} # defaults to driver:local
docker-compose.yml
![Page 22: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/22.jpg)
@stuartleeks
$ docker-compose pull # Pulls service image
$ docker-compose up # Create and start containers$ docker-compose down # Stop and remove containers
$ docker-compose scale # Set number of containers for a service
docker-compose
![Page 23: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/23.jpg)
@stuartleeks
Putting it all together
Docker Hub
Docker Host
vsts-agent
Source control
Build service
Azure Container Service
commit
triggers build
execute build
docker build
docker push
docker-compose
browser
docker pull
Developer User
![Page 24: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/24.jpg)
@stuartleeks
DEMO…
Docker
![Page 25: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/25.jpg)
@stuartleeks
Azure Container ServiceChoices
Swarm
DC/OS
Kubernetes (preview)
![Page 26: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/26.jpg)
@stuartleeks
LinksDocker• Hub: https://hub.docker.com/
• Trusted Registry: https://docs.docker.com/docker-trusted-registry/
• Registry image: https://docs.docker.com/registry/
• Windows Containers: https://aka.ms/containers
Azure• Container Service: https://azure.microsoft.com/en-us/documentation/services/container-service/
• (video): https://azure.microsoft.com/en-us/documentation/videos/using-azure-container-service-with-docker/
• Docker on Ubuntu: https://azure.microsoft.com/en-us/marketplace/partners/canonicalandmsopentech/dockeronubuntuserver1404lts/
• Docker Datacenter: https://azure.microsoft.com/en-us/marketplace/partners/docker/dockerdatacenterdocker-datacenter/
• Docker Machine: https://azure.microsoft.com/en-us/documentation/articles/vs-azure-tools-docker-machine-azure-config/
• Container Registry: https://azure.microsoft.com/en-us/services/container-registry/
.NET Core• Get it: https://dot.net/core
• Steve Lasker – building with VSTS: https://blogs.msdn.microsoft.com/stevelasker/2016/06/13/building-net-core-linux-docker-images-with-visual-studio-team-services
Visual Studio Team Services: https://www.visualstudio.com
Application Insights• Getting started: https://azure.microsoft.com/en-us/documentation/articles/app-insights-overview/
• ASP.NET Core: https://github.com/Microsoft/ApplicationInsights-aspnetcore/wiki/Getting-Started
• Analytics: https://azure.microsoft.com/en-us/documentation/articles/app-insights-analytics/
![Page 27: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/27.jpg)
@stuartleeks
DevOps’ing with Containers
![Page 28: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/28.jpg)
@stuartleeks
Docker
docker-composeDocker Swarm
Docker HubASP.NET Core
Azure Container Service
Visual Studio Team Services
![Page 29: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/29.jpg)
@stuartleeks
Containers…won’t create world peace
![Page 30: DevOps'ing Containers](https://reader035.vdokumen.com/reader035/viewer/2022062503/58ef811f1a28abcf768b4663/html5/thumbnails/30.jpg)
@stuartleeks
DevOps’ing with ContainersStuart LeeksTechnical EvangelistMicrosoft