Introduction To Docker - Docker and Kubernetes Training
Introduction To Docker - Docker and Kubernetes Training
Introduction To Docker - Docker and Kubernetes Training
Introduction to Docker
Shailendra Chauhan
Microsoft MVP, Technical Consultant and Corporate Trainer
For Docker Online Training : +91-999 123 502
Agenda
• 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
For Docker Online Training : +91-999 123 502
Evolution of Computing
For Docker Online Training : +91-999 123 502
What is Container?
• 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
Source : www.docker.com
• Works with all major Linux & Windows Server
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
Why Containers?
For Developers For Administrator
Containers
VMs
Source : www.docker.com
For Docker Online Training : +91-999 123 502
Introduction to Docker
• 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.
For Docker Online Training : +91-999 123 502
Docker Benefits
• 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
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
Windows Server
Applications
(.NET Core, Java, JS etc.)
Linux
For Docker Online Training : +91-999 123 502
Legacy Applications
.NET Core
Linux
For Docker Online Training : +91-999 123 502
Docker Basics
• Docker File
• Docker Image
• Docker Container
• Docker Registry
For Docker Online Training : +91-999 123 502
Docker File
• A simple text file that contains commands to build a docker image.
• This file doesn’t have any extension.
docker build
Dockerfile
For Docker Online Training : +91-999 123 502
Docker Image
• A lightweight, standalone and executable
package of software. …
• Includes everything which is needed to run .NET Core SDK
an application like code, runtime, system
tools, system libraries and settings. Base Image (Ubuntu)
• An image is stack of multiple read only Image = Layered File System
layers referencing another images.
• Created by docker build command.
• Stored in Docker registry (eg. Docker Hub).
For Docker Online Training : +91-999 123 502
Docker Container
• Container is an running instance of a docker image
• An isolated and secured shipping container
• Run by docker run command
docker run
Operating System
Software
Application Code
For Docker Online Training : +91-999 123 502
Docker Registry
• 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 push
docker pull
Docker Registry
For Docker Online Training : +91-999 123 502
Docker Registry
Pull
Push
Stop
Start
Build Run Restart
Commit
Dockerfile
Docker Local Instance
For Docker Online Training : +91-999 123 502
Docker Engine
• 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.
For Docker Online Training : +91-999 123 502
R
E Images
S Volumes
Docker CLI
T
Networks
A
P Containers Plugins
I Server Daemon
Docker Engine