350 likes | 424 Views
Learn to build modern infrastructure using docker and Kubernetes containers. Develop and deploy your ASP.NET Core application using Docker. Leverage to learn container technology to build your ASP.NET Core application.
E N D
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 • Works with all major Linux & Windows Server Source : www.docker.com
For Docker Online Training : +91-999 123 502 Container Platforms Linux Containers (LXC) Docker (Docker Swarm) Kubernetes DC/OS RedHat OpenShift
For Docker Online Training : +91-999 123 502 Why Containers? For Administrator For Developers •Quickly create ready-to-run packaged applications, low cost deployment •Automate testing, integration and packaging •Reduce/eliminate platform compatibility issues •Supports microservices development •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 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 • Fully isolated • Isolated OS • Having its own kernel • Slower in start-up • Many startup process • Upfront resource allocation • 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 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 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). … .NET Core SDK Base Image (Ubuntu) Image = Layered File System
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 Restart Run Build 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 Images E S Volumes T Docker CLI Networks A Plugins P Containers I Server Daemon Docker Engine