Download - Deploying ASP.Net Core apps in Docker Containers

Transcript
Page 1: Deploying ASP.Net Core apps in Docker Containers
Page 2: Deploying ASP.Net Core apps in Docker Containers
Page 3: Deploying ASP.Net Core apps in Docker Containers
Page 4: Deploying ASP.Net Core apps in Docker Containers

Host OS - Hardware

Hyper Visor

Guest OS #2Guest OS #1 (Virtual Machine)

Docker Daemon

Page 5: Deploying ASP.Net Core apps in Docker Containers

App A

Server

Host OS

Hypervisor

Guest

OS

Guest

OS

Guest

OS

Bins/Lib

s

Bins/Lib

s

Bins/Lib

s

App A’ App B

Server

Host OS

Docker Engine

Bins/Libs Bins/Libs

Ap

p A

Ap

p A

Ap

p B

Ap

p B

Ap

p B

Ap

p B

Ap

p B

Ap

p B

Containers are isolated, but share

OS and, where appropriate,

bins/libraries

Page 6: Deploying ASP.Net Core apps in Docker Containers
Page 7: Deploying ASP.Net Core apps in Docker Containers
Page 9: Deploying ASP.Net Core apps in Docker Containers

DOCKER_HOST

Images CacheContainers

RegistryClient

Docker pull Docker daemon

Docker run

Docker API

DotNetDotNet

DotNet

DotNet

Page 10: Deploying ASP.Net Core apps in Docker Containers

docker build

Registry DOCKER_HOST

ImagesContainers

0001Program.cs110

HelloWorld.dll111010111011011010

Code/Binaries

Client

Docker build

Docker daemon

FROM microsoft/dotnet:1.0.0-rc2-core

WORKDIR /appCOPY /app /appENTRYPOINT dotnet HelloWorld.dll

dockerfile

Private Registry

Docker run

Docker push

Page 11: Deploying ASP.Net Core apps in Docker Containers

Docker Compose

Private Registry

MultiService

API

MultiService

DOCKER_HOST

ImagesContainers

Registry

Client

Docker-compose

Docker daemonversion: '2'services:multiservice:image:- multiservice:latest

environment: - CustomerAPIService=http://webapi/api/Customer

ports:- "80:80"

depends_on:- webapi

webapi:image: - multiserviceapi:latest

Docker-compose.yml

DotNet

MultiService

MultiService

API

frontend

api

MultiService

MultiService

API

Page 12: Deploying ASP.Net Core apps in Docker Containers

Host OS

Networking

DOCKER_HOST

Container1

Docker daemon

docker0: 192.168.1.100

:80 :8001 :8002 :8003

eth0: 172.17.0.2

Container2

eth0: 172.17.0.3

Container3

eth0: 172.17.0.4

Container4

eth0: 172.17.0.5

eth0: 10.100.2.100

veth5998974veth473629a

veth2726149bveth736321c

Docker Networking uses NAT to route inbound traffic to each containerEach container can use the same port, internal to it’s 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

Page 13: Deploying ASP.Net Core apps in Docker Containers
Page 14: Deploying ASP.Net Core apps in Docker Containers