deploying asp.net core apps in docker containers
Post on 21-Jan-2018
340 Views
Preview:
TRANSCRIPT
Host OS - Hardware
Hyper Visor
Guest OS #2Guest OS #1 (Virtual Machine)
Docker Daemon
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
ImageLayers.io
DOCKER_HOST
Images CacheContainers
RegistryClient
Docker pull Docker daemon
Docker run
Docker API
DotNetDotNet
DotNet
DotNet
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
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
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
top related