SlideShare a Scribd company logo
For Docker Online Training : +91-999 123 502
Introduction to Docker
Shailendra Chauhan
Microsoft MVP, Technical Consultant and Corporate Trainer
For Docker Online Training : +91-999 123 502
• Multi-Dimensional Evolution of Computing
• What is Container?
• Container Platforms
• Why Containers?
• Virtual Machines vs Containers
• Containers and VMs together
• Docker Basics
• Docker for .NET Applications
• Docker Engine Architecture
Agenda
For Docker Online Training : +91-999 123 502
Evolution of Computing
For Docker Online Training : +91-999 123 502
• A container is a software that contains an
application code and all its dependencies.
• Enables an application to run quickly in an
isolated environment.
• Provide smooth migration from one
computing environment to another.
• Share the same OS kernel
• Works with all major Linux & Windows Server
What is Container?
Source : www.docker.com
For Docker Online Training : +91-999 123 502
Container Platforms
Linux Containers (LXC) Docker (Docker Swarm) Kubernetes RedHat OpenShift DC/OS
For Docker Online Training : +91-999 123 502
• Quickly create ready-to-run packaged
applications, low cost deployment
• Automate testing, integration and
packaging
• Reduce/eliminate platform
compatibility issues
• Supports microservices development
Why Containers?
• Improve speed and frequency of
releases, reliability of deployments
• Makes app lifecycle efficient,
consistent and repeatable-configure
once, run many times
• Eliminate environment inconsistencies
between dev, test, and production
• Provide Scalability on demand
For Developers For Administrator
For Docker Online Training : +91-999 123 502
Virtual Machines vs. Containers
VMs
Source : www.docker.com
Containers
Source : www.docker.com
For Docker Online Training : +91-999 123 502
• Hardware-level virtualization
• Fully isolated
• Isolated OS
• Having its own kernel
• Slower in start-up
• Many startup process
• Upfront resource allocation
Virtual Machine vs. Containers
• OS-level virtualization
• Process-level isolation
• Isolated processes/filesystems
• Host machine kernel is used
• Faster in start-up
• Single Start-up process
• No upfront resource allocation
For Docker Online Training : +91-999 123 502
Containers and VMs together
Source : www.docker.com
For Docker Online Training : +91-999 123 502
• A light weight, open and secure platform for developing, shipping
and running applications using container technology.
• Provides Container solutions for developers, architects, DevOps,
and IT People.
• Run on most Linux distributions, Windows and Mac OS.
• Supported by most of cloud providers like AWS, Azure, Google etc.
• Provide Dev/Test, CI and DevOps platform for many use cases.
Introduction to Docker
For Docker Online Training : +91-999 123 502
• Infrastructure Cost Savings
• Standardization and Productivity
• Isolation
• Security
• Makes app lifecycle efficient and consistent
• Continuous Deployment and Testing
• On Demand Scaling
• Multi-Cloud Platforms Support
Docker Benefits
For Docker Online Training : +91-999 123 502
Docker Desktop
• An application for Mac and Windows to build
production-ready container applications
• Enables to build and test Linux & Windows
based applications at local machine
• Available in two editions:
• Desktop Community
• Desktop Enterprise
For Docker Online Training : +91-999 123 502
Docker For Developers
Applications
(.NET Core, Java, JS etc.)
Windows Server
Linux
For Docker Online Training : +91-999 123 502
Docker For .NET Applications
.NET Core
Windows Nano Server
Linux
.NET 3.5 & .NET 4.x Windows Server Core
Legacy Applications
For Docker Online Training : +91-999 123 502
• Docker File
• Docker Image
• Docker Container
• Docker Registry
Docker Basics
For Docker Online Training : +91-999 123 502
Docker File
Dockerfile
docker build
• A simple text file that contains commands to build a docker image.
• This file doesn’t have any extension.
For Docker Online Training : +91-999 123 502
• A lightweight, standalone and executable
package of software.
• Includes everything which is needed to run
an application like code, runtime, system
tools, system libraries and settings.
• An image is stack of multiple read only
layers referencing another images.
• Created by docker build command.
• Stored in Docker registry (eg. Docker Hub).
Docker Image
Image = Layered File System
Base Image (Ubuntu)
.NET Core SDK
…
For Docker Online Training : +91-999 123 502
• Container is an running instance of a docker image
• An isolated and secured shipping container
• Run by docker run command
Docker Container
Operating System
Software
Application Code
docker run
For Docker Online Training : +91-999 123 502
• A Service to host Docker images
• Multiple options are available:
• Docker Hub - (Free for public images and Paid for private images)
• Docker Trusted Registry - (on-prem or on-cloud)
Docker Registry
Docker Registry
docker push
docker pull
For Docker Online Training : +91-999 123 502
Docker Container Life Cycle
Run
Dockerfile
Build
Docker Registry
Pull
Push
Stop
Start
Restart
Docker Local Instance
Commit
For Docker Online Training : +91-999 123 502
• A runtime to build and run container based applications which
can run anywhere consistently on any infrastructure.
• Runs on various Linux (CentOS, Debian, Fedora, Oracle Linux,
RHEL, SUSE, and Ubuntu) and Windows Server OS.
• Provides built in orchestration, container networking, out of the
box security, volume and plugins.
Docker Engine
For Docker Online Training : +91-999 123 502
Server Daemon
Docker Engine Architecture
Volumes
Images
Networks
Plugins
R
E
S
T
A
P
I
Docker CLI
Docker Engine
Containers

More Related Content

Introduction to Docker | Docker and Kubernetes Training

  • 1. For Docker Online Training : +91-999 123 502 Introduction to Docker Shailendra Chauhan Microsoft MVP, Technical Consultant and Corporate Trainer
  • 2. For Docker Online Training : +91-999 123 502 • Multi-Dimensional Evolution of Computing • What is Container? • Container Platforms • Why Containers? • Virtual Machines vs Containers • Containers and VMs together • Docker Basics • Docker for .NET Applications • Docker Engine Architecture Agenda
  • 3. For Docker Online Training : +91-999 123 502 Evolution of Computing
  • 4. For Docker Online Training : +91-999 123 502 • A container is a software that contains an application code and all its dependencies. • Enables an application to run quickly in an isolated environment. • Provide smooth migration from one computing environment to another. • Share the same OS kernel • Works with all major Linux & Windows Server What is Container? Source : www.docker.com
  • 5. For Docker Online Training : +91-999 123 502 Container Platforms Linux Containers (LXC) Docker (Docker Swarm) Kubernetes RedHat OpenShift DC/OS
  • 6. For Docker Online Training : +91-999 123 502 • Quickly create ready-to-run packaged applications, low cost deployment • Automate testing, integration and packaging • Reduce/eliminate platform compatibility issues • Supports microservices development Why Containers? • Improve speed and frequency of releases, reliability of deployments • Makes app lifecycle efficient, consistent and repeatable-configure once, run many times • Eliminate environment inconsistencies between dev, test, and production • Provide Scalability on demand For Developers For Administrator
  • 7. For Docker Online Training : +91-999 123 502 Virtual Machines vs. Containers VMs Source : www.docker.com Containers Source : www.docker.com
  • 8. For Docker Online Training : +91-999 123 502 • Hardware-level virtualization • Fully isolated • Isolated OS • Having its own kernel • Slower in start-up • Many startup process • Upfront resource allocation Virtual Machine vs. Containers • OS-level virtualization • Process-level isolation • Isolated processes/filesystems • Host machine kernel is used • Faster in start-up • Single Start-up process • No upfront resource allocation
  • 9. For Docker Online Training : +91-999 123 502 Containers and VMs together Source : www.docker.com
  • 10. For Docker Online Training : +91-999 123 502 • A light weight, open and secure platform for developing, shipping and running applications using container technology. • Provides Container solutions for developers, architects, DevOps, and IT People. • Run on most Linux distributions, Windows and Mac OS. • Supported by most of cloud providers like AWS, Azure, Google etc. • Provide Dev/Test, CI and DevOps platform for many use cases. Introduction to Docker
  • 11. For Docker Online Training : +91-999 123 502 • Infrastructure Cost Savings • Standardization and Productivity • Isolation • Security • Makes app lifecycle efficient and consistent • Continuous Deployment and Testing • On Demand Scaling • Multi-Cloud Platforms Support Docker Benefits
  • 12. For Docker Online Training : +91-999 123 502 Docker Desktop • An application for Mac and Windows to build production-ready container applications • Enables to build and test Linux & Windows based applications at local machine • Available in two editions: • Desktop Community • Desktop Enterprise
  • 13. For Docker Online Training : +91-999 123 502 Docker For Developers Applications (.NET Core, Java, JS etc.) Windows Server Linux
  • 14. For Docker Online Training : +91-999 123 502 Docker For .NET Applications .NET Core Windows Nano Server Linux .NET 3.5 & .NET 4.x Windows Server Core Legacy Applications
  • 15. For Docker Online Training : +91-999 123 502 • Docker File • Docker Image • Docker Container • Docker Registry Docker Basics
  • 16. For Docker Online Training : +91-999 123 502 Docker File Dockerfile docker build • A simple text file that contains commands to build a docker image. • This file doesn’t have any extension.
  • 17. For Docker Online Training : +91-999 123 502 • A lightweight, standalone and executable package of software. • Includes everything which is needed to run an application like code, runtime, system tools, system libraries and settings. • An image is stack of multiple read only layers referencing another images. • Created by docker build command. • Stored in Docker registry (eg. Docker Hub). Docker Image Image = Layered File System Base Image (Ubuntu) .NET Core SDK …
  • 18. For Docker Online Training : +91-999 123 502 • Container is an running instance of a docker image • An isolated and secured shipping container • Run by docker run command Docker Container Operating System Software Application Code docker run
  • 19. For Docker Online Training : +91-999 123 502 • A Service to host Docker images • Multiple options are available: • Docker Hub - (Free for public images and Paid for private images) • Docker Trusted Registry - (on-prem or on-cloud) Docker Registry Docker Registry docker push docker pull
  • 20. For Docker Online Training : +91-999 123 502 Docker Container Life Cycle Run Dockerfile Build Docker Registry Pull Push Stop Start Restart Docker Local Instance Commit
  • 21. For Docker Online Training : +91-999 123 502 • A runtime to build and run container based applications which can run anywhere consistently on any infrastructure. • Runs on various Linux (CentOS, Debian, Fedora, Oracle Linux, RHEL, SUSE, and Ubuntu) and Windows Server OS. • Provides built in orchestration, container networking, out of the box security, volume and plugins. Docker Engine
  • 22. For Docker Online Training : +91-999 123 502 Server Daemon Docker Engine Architecture Volumes Images Networks Plugins R E S T A P I Docker CLI Docker Engine Containers