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
- 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