Introduction To Docker - Docker and Kubernetes Training

Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

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

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

• Quickly create ready-to-run packaged • Improve speed and frequency of


applications, low cost deployment releases, reliability of deployments
• Automate testing, integration and • Makes app lifecycle efficient,
packaging consistent and repeatable-configure
once, run many times
• Reduce/eliminate platform
• Eliminate environment inconsistencies
compatibility issues
between dev, test, and production
• Supports microservices development • Provide Scalability on demand
For Docker Online Training : +91-999 123 502

Virtual Machines vs. Containers

Containers
VMs

Source : www.docker.com Source : www.docker.com


For Docker Online Training : +91-999 123 502

Virtual Machine vs. Containers


• Hardware-level virtualization • OS-level virtualization
• Fully isolated • Process-level isolation
• Isolated OS • Isolated processes/filesystems
• Having its own kernel • Host machine kernel is used
• Slower in start-up • Faster in start-up
• Many startup process • Single Start-up process
• Upfront resource allocation • 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

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

Docker For Developers

Windows Server

Applications
(.NET Core, Java, JS etc.)

Linux
For Docker Online Training : +91-999 123 502

Docker For .NET Applications

.NET 3.5 & .NET 4.x Windows Server Core

Legacy Applications

Windows Nano Server

.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 Container Life Cycle

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

Docker Engine Architecture

R
E Images
S Volumes
Docker CLI
T
Networks
A
P Containers Plugins
I Server Daemon
Docker Engine

You might also like