SlideShare a Scribd company logo
Docker containers
The big picture
Brave new world
UI
Business logic
Data access
• Monoliths, our traditional approach in
enterprise software
• A black hole of technical debt
• Layered
• Regression
• Rigid
• Zero reusability
I can go on, you get the gist…
Nice try, but…
Software development methodologies
Project management techniques
They all have failed.
However an engineering approach
emerged
scrum
crystal
xp
lean
adaptive
pragmatic
dsdm
Microservices &
Containers are becoming
mainstream
• Emerging engineering approach
• The closest thing yet to ideal
software components
• Small, self-contained, critical-
mission web components
• Independently deployable
Picture from: https://www.nginx.com/resources/library/app-dev-survey/
Go to market needs
• We want to avoid deployment errors
• We need a way to develop faster
• We need a way to scale up our applications
efficiently
• We need rapid & continuous releases
• REUSABILITY
Picture from: https://www.nginx.com/resources/library/app-dev-survey/
What’s a container?
Docker for developers - The big picture
Containers
• Standard unit of software deployment
• Contains different code and dependencies
• Each container can run an entire application
• Container image is instantiated to run as a
process, serving the application
• Think of this analogy: Class vs object.
• Offers
• Isolation
• Portability
• Agility
• Scalability
A container does one thing and it does it in one process
Container principle
What’s Docker?
Most popular container technology
According to google trends:
Super popular
Steadily increasing (currently on peak)
Docker
• Lightweight container engine
• Similar to aVM – can host apps & services
• Supports Linux, CoreOS &Windows
• Linux being the most popular
• WindowsNano
Value for business
*According to https://www.docker.com/why-docker
Docker vsVMs
• Far fewer resources
• Easy to deploy
• Fast start
• Higher density  More services in one h/w unit
• Less cost
• Same across deployments
• Can go anywhere
• OS is virtualized instead h/w
https://docs.microsoft.com/en-us/dotnet/standard/microservices-
architecture/container-docker-introduction/docker-defined
“
”
It works on my machine
Developers’ favorite phrase
“It runs on Docker”
Terminology
And many more…
https://bit.ly/2rmKoLg
• Registry
• Service that provides access to a collection or
related Docker images.
• Orchestrator
• Tool that simplifies management of clusters
and Docker hosts, like Kubernetes
• Images
• Package with all dependencies needed to
create a container.
• Containers
• Instance of a Docker image.
Docker containers, images & registry
https://docs.microsoft.com/en-us/dotnet/standard/microservices-
architecture/container-docker-introduction/docker-containers-images-registries
Benefits
• One environment for the application to run
• No more asking how it works in local or SIT and not in PROD
• Easier to run containerized apps locally
• Easier to test applications & run integration tests
• Easier to use dependencies – Just use a Docker Image
• Redis, SQL Server, Neo4J, Mongo…
• External services
Dockerfile
• docker build
• Reads a Dockerfile
• Creates a new image
• Multi-stage build
• Cleaner approach, smaller image
size
• ENTRYPOINT sets the
commands that run when the
container first runs.
Build image & run
• docker build –t eshop/orders.api:latest –f Orders.API/Dockerfile .
• Builds the image
• docker run -d –p 8080:80 eshop/orders.api:latest
• Runs the container on port 8080, mapping from port 80 inside the container
• Runs a single container
• What about multi-container applications?
• docker-compose up
• Ideal for development environments
Containerize applications inVisual Studio
• Recommended to useVisual Studio to
containerize applications when starting with
Docker
• Creates Dockerfiles
• Creates Docker Compose files & overrides
• Creates ignore files
• Easy to Debug – Just F5
• Multiple applications start & debug with
Docker Compose
Development workflow
https://docs.microsoft.com/en-us/dotnet/standard/microservices-
architecture/docker-application-development-process/docker-app-
development-workflow
.NET Core & Containers
• Cross-platform
• Can target different OS compared to .NET Framework which requires Windows only
• Microservices
• .NET Core fits best the containers philosophy
• Lightweight compared to .NET Framework
• Container is lightweight also – Linux container size <Windows container size
Operating systems for
.NET Core apps
Docker can implicitly understand the
target OS and download the
appropriate container (Linux or
Windows)
https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/net-core-net-framework-
containers/net-container-os-targets
Composing multi-
container applications
Resources
• https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/
• https://www.pluralsight.com/courses/docker-containers-big-picture
• https://www.pluralsight.com/courses/docker-getting-started
• https://www.packtpub.com/virtualization-and-cloud/microservices-development-
azure-java-video
• https://www.nginx.com/resources/library/app-dev-survey/
• https://www.docker.com/
Disclaimer: Diagram images used are taken from Microsoft’s guide on microservices
Questions?

More Related Content

PPTX
Built in NM - Meetup Talk - CTL Labs
PPT
Building a Platform-as-a-Service with Docker and Node.js
PDF
Building a SaaS with Nodejs, Docker, and CoreOS
PPTX
Introduction to Docker
PDF
Docker management
PDF
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
PDF
Introduction to Docker | Docker and Kubernetes Training
PPTX
Microcontainers and Tools for Hardcore Container Debugging
Built in NM - Meetup Talk - CTL Labs
Building a Platform-as-a-Service with Docker and Node.js
Building a SaaS with Nodejs, Docker, and CoreOS
Introduction to Docker
Docker management
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
Introduction to Docker | Docker and Kubernetes Training
Microcontainers and Tools for Hardcore Container Debugging

What's hot (20)

PDF
Digital Transformation with Docker, Cloud, and DevOps: How JCPenney Handles B...
PPTX
Structured Container Delivery by Oscar Renalias, Accenture
PDF
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
PPT
Getting Started with Docker
PPTX
Docker introduction
PPTX
Dot net platform and dotnet core fundamentals
PPTX
Container Patterns
PPTX
What is Docker?
PDF
Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...
PPTX
Docker - A curtain raiser to the Container world
PPTX
2014, April 15, Atlanta Java Users Group
PPTX
Docker - HieuHoang
PDF
The Next Generation Cloud: Unleashing the Power of the Unikernal
PDF
Containers and microservices for realists
PDF
DCSF 19 Modern Orchestrated IT for Enterprise CMS
PDF
DockerCon EU 2015: Official Repos and Project Nautilus
PDF
Building Big Architectures XP Conference 2016
PDF
Automation CI CD with Gitlab, Java, docker on Hidora - Jelastic
PDF
DCSF 19 Microservices API: Routing Across Any Infrastructure
PDF
Introduction to Docker Containers - Docker Captain
Digital Transformation with Docker, Cloud, and DevOps: How JCPenney Handles B...
Structured Container Delivery by Oscar Renalias, Accenture
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Getting Started with Docker
Docker introduction
Dot net platform and dotnet core fundamentals
Container Patterns
What is Docker?
Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...
Docker - A curtain raiser to the Container world
2014, April 15, Atlanta Java Users Group
Docker - HieuHoang
The Next Generation Cloud: Unleashing the Power of the Unikernal
Containers and microservices for realists
DCSF 19 Modern Orchestrated IT for Enterprise CMS
DockerCon EU 2015: Official Repos and Project Nautilus
Building Big Architectures XP Conference 2016
Automation CI CD with Gitlab, Java, docker on Hidora - Jelastic
DCSF 19 Microservices API: Routing Across Any Infrastructure
Introduction to Docker Containers - Docker Captain
Ad

Similar to Docker for developers - The big picture (20)

PPTX
UNITde II - Docker-Containerization.pptx,
PDF
Containers docker-docker hub-azureacr-azure aci
PDF
Preparing your dockerised application for production deployment
PPTX
Introduction: Basic Installation Docker Container
PPTX
Dockerize the World
PDF
Rami Sayar - Node microservices with Docker
PPTX
Dockerize the World - presentation from Hradec Kralove
PDF
Afrimadoni the power of docker
PDF
week8_watermark.pdfhowcanitbe minimum 40 i
PDF
Week 8 lecture material
PDF
Containers and Microservices for Realists
PPTX
Why to docker
PPTX
ma-formation-en-Docker-jlklk,nknkjn.pptx
PDF
Containers, microservices and serverless for realists
PDF
Rails Applications with Docker
PPTX
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
PDF
Docker Introduction
PDF
What is Docker and why is it so hot?
PPTX
DockerCon 15 Keynote - Day 2
PDF
Journey to the devops automation with docker kubernetes and openshift
UNITde II - Docker-Containerization.pptx,
Containers docker-docker hub-azureacr-azure aci
Preparing your dockerised application for production deployment
Introduction: Basic Installation Docker Container
Dockerize the World
Rami Sayar - Node microservices with Docker
Dockerize the World - presentation from Hradec Kralove
Afrimadoni the power of docker
week8_watermark.pdfhowcanitbe minimum 40 i
Week 8 lecture material
Containers and Microservices for Realists
Why to docker
ma-formation-en-Docker-jlklk,nknkjn.pptx
Containers, microservices and serverless for realists
Rails Applications with Docker
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Docker Introduction
What is Docker and why is it so hot?
DockerCon 15 Keynote - Day 2
Journey to the devops automation with docker kubernetes and openshift
Ad

Recently uploaded (20)

PDF
top salesforce developer skills in 2025.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PPT
Introduction Database Management System for Course Database
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
ai tools demonstartion for schools and inter college
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
System and Network Administration Chapter 2
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Transform Your Business with a Software ERP System
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
top salesforce developer skills in 2025.pdf
Understanding Forklifts - TECH EHS Solution
Introduction Database Management System for Course Database
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PTS Company Brochure 2025 (1).pdf.......
2025 Textile ERP Trends: SAP, Odoo & Oracle
ai tools demonstartion for schools and inter college
How to Migrate SBCGlobal Email to Yahoo Easily
System and Network Administration Chapter 2
CHAPTER 2 - PM Management and IT Context
Which alternative to Crystal Reports is best for small or large businesses.pdf
Transform Your Business with a Software ERP System
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
How Creative Agencies Leverage Project Management Software.pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Navsoft: AI-Powered Business Solutions & Custom Software Development
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)

Docker for developers - The big picture

  • 2. Brave new world UI Business logic Data access • Monoliths, our traditional approach in enterprise software • A black hole of technical debt • Layered • Regression • Rigid • Zero reusability I can go on, you get the gist…
  • 3. Nice try, but… Software development methodologies Project management techniques They all have failed. However an engineering approach emerged scrum crystal xp lean adaptive pragmatic dsdm
  • 4. Microservices & Containers are becoming mainstream • Emerging engineering approach • The closest thing yet to ideal software components • Small, self-contained, critical- mission web components • Independently deployable Picture from: https://www.nginx.com/resources/library/app-dev-survey/
  • 5. Go to market needs • We want to avoid deployment errors • We need a way to develop faster • We need a way to scale up our applications efficiently • We need rapid & continuous releases • REUSABILITY Picture from: https://www.nginx.com/resources/library/app-dev-survey/
  • 8. Containers • Standard unit of software deployment • Contains different code and dependencies • Each container can run an entire application • Container image is instantiated to run as a process, serving the application • Think of this analogy: Class vs object. • Offers • Isolation • Portability • Agility • Scalability
  • 9. A container does one thing and it does it in one process Container principle
  • 10. What’s Docker? Most popular container technology According to google trends: Super popular Steadily increasing (currently on peak)
  • 11. Docker • Lightweight container engine • Similar to aVM – can host apps & services • Supports Linux, CoreOS &Windows • Linux being the most popular • WindowsNano
  • 12. Value for business *According to https://www.docker.com/why-docker
  • 13. Docker vsVMs • Far fewer resources • Easy to deploy • Fast start • Higher density  More services in one h/w unit • Less cost • Same across deployments • Can go anywhere • OS is virtualized instead h/w https://docs.microsoft.com/en-us/dotnet/standard/microservices- architecture/container-docker-introduction/docker-defined
  • 14. “ ” It works on my machine Developers’ favorite phrase “It runs on Docker”
  • 15. Terminology And many more… https://bit.ly/2rmKoLg • Registry • Service that provides access to a collection or related Docker images. • Orchestrator • Tool that simplifies management of clusters and Docker hosts, like Kubernetes • Images • Package with all dependencies needed to create a container. • Containers • Instance of a Docker image.
  • 16. Docker containers, images & registry https://docs.microsoft.com/en-us/dotnet/standard/microservices- architecture/container-docker-introduction/docker-containers-images-registries
  • 17. Benefits • One environment for the application to run • No more asking how it works in local or SIT and not in PROD • Easier to run containerized apps locally • Easier to test applications & run integration tests • Easier to use dependencies – Just use a Docker Image • Redis, SQL Server, Neo4J, Mongo… • External services
  • 18. Dockerfile • docker build • Reads a Dockerfile • Creates a new image • Multi-stage build • Cleaner approach, smaller image size • ENTRYPOINT sets the commands that run when the container first runs.
  • 19. Build image & run • docker build –t eshop/orders.api:latest –f Orders.API/Dockerfile . • Builds the image • docker run -d –p 8080:80 eshop/orders.api:latest • Runs the container on port 8080, mapping from port 80 inside the container • Runs a single container • What about multi-container applications? • docker-compose up • Ideal for development environments
  • 20. Containerize applications inVisual Studio • Recommended to useVisual Studio to containerize applications when starting with Docker • Creates Dockerfiles • Creates Docker Compose files & overrides • Creates ignore files • Easy to Debug – Just F5 • Multiple applications start & debug with Docker Compose
  • 22. .NET Core & Containers • Cross-platform • Can target different OS compared to .NET Framework which requires Windows only • Microservices • .NET Core fits best the containers philosophy • Lightweight compared to .NET Framework • Container is lightweight also – Linux container size <Windows container size
  • 23. Operating systems for .NET Core apps Docker can implicitly understand the target OS and download the appropriate container (Linux or Windows) https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/net-core-net-framework- containers/net-container-os-targets
  • 25. Resources • https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/ • https://www.pluralsight.com/courses/docker-containers-big-picture • https://www.pluralsight.com/courses/docker-getting-started • https://www.packtpub.com/virtualization-and-cloud/microservices-development- azure-java-video • https://www.nginx.com/resources/library/app-dev-survey/ • https://www.docker.com/ Disclaimer: Diagram images used are taken from Microsoft’s guide on microservices

Editor's Notes

  • #2: Some notes
  • #4: Why so many errors in deployments? Why instruction books for deployments with steps? (Real world example) Why slow development? Why setting up so many dependencies, wasting time? (Real world example, 1 full day, 3 developers + 1 team lead/manager) Why CRQs? (Real world example)
  • #14: Sidestory – server migration in BAML
  • #19: Build a new stage, a small runtime-only base image Create /app directory in that image Expose port 80 Create a new stage with a larger image for building the application Create directory /src in the image Copy .csproj files Run dotnet restore Copy all directory tree for the solution to the /serc directory in the image Change current folder to Orders.API Build the project Then create a new stage, which publishes the artifacts from the .csproj Finally create a new stage, continuing from base and call it final Change current directory to /app Copy the /app directory from stage publish to the current directory Define the command to run when the container is started
  • #21: Open Visual Studio, create a new ASP.NET Core Application or open an existing and containerize it
  • #25: Create new solution Add a Web API application Add Docker support Run docker-compose up to compose all containers and their dependencies