Introduction to Docker and Kubernetes

3 Ratings

Course Number: CLD-122WA
Duration: 3 days (19.5 hours)
Format: Live, hands-on

Docker and K8s Training Overview

This Docker and Kubernetes training course teaches students how to create and deploy applications using Docker to create containers and Kubernetes (K8s) to manage and deploy those containers. This Docker and K8s course also discusses Continuous Integration.

Location and Pricing

Accelebrate offers instructor-led enterprise training for groups of 3 or more online or at your site. Most Accelebrate classes can be flexibly scheduled for your group, including delivery in half-day segments across a week or set of weeks. To receive a customized proposal and price quote for private corporate training on-site or online, please contact us.

In addition, some courses are available as live, instructor-led training from one of our partners.

Objectives

  • Create a Docker account and obtain an access token
  • Manage containers
  • Build images
  • Work with Docker Compose
  • Configure Minikube/Kubernetes to use a custom Docker account
  • Access the Kubernetes API
  • Work with Kubernetes workloads
  • Schedule and manage nodes
  • Access applications
  • Use persistent storage
  • Work with Helm
  • Build CI Pipeline with Jenkins

Prerequisites

All students must be somewhat familiar with Linux and have basic programming skills.

Outline

Expand All | Collapse All

Docker and Linux Container Technology: Introduction and Use-Cases
  • Modern Infrastructure Terminology
  • Virtualization
  • Hypervisors
  • Hypervisor Types
  • Type 1 Hypervisors
  • Type 2 Hypervisors
  • Type 1 vs. Type 2 Processing
  • Paravirtualization
  • Virtualization Qualities
  • Disadvantages of Virtualization
  • Containerization
  • Virtualization vs. Containerization
  • Where to Use Virtualization and Containerization
  • Containerization: High-Level
  • Popular Containerization Systems
  • What are Linux Containers
  • Docker
  • OpenVZ
  • Solaris Zones (Containers)
  • Container Orchestration Tools
  • Docker Swarm
  • Kubernetes
  • Mesos and Marathon
  • Docker Use-Cases
  • Microservices
  • Microservices and Containers/Clusters
Docker in Action
  • Docker Basics
  • Where Can I Run Docker?
  • Installing Docker Container Engine
  • Docker Toolbox
  • What is Docker?
  • Docker Architecture
  • Docker Architecture Diagram
  • Docker Images
  • Docker Containers
  • Docker Integration
  • Docker Services
  • Docker Application Container Public Repository
  • Docker Run Command
  • Starting, Inspecting, and Stopping Docker Containers
  • Docker Volume
  • Dockerfile
  • Docker Compose
  • Using Docker Compose
  • Dissecting docker-compose.yml
  • Specifying services
  • Dependencies between containers
  • Injecting Environment Variables
Managing Docker State
  • State and Data in Docker
  • Volumes
  • More About Volumes
  • Uses for Volumes
  • Working With Volumes
  • Create Volume
  • Use Volumes with Containers
  • Bind Mounts
  • Using Bind Mounts
  • tmpfs Mounts
  • Storing Data in the Container
  • Storage Drivers
  • Remote Data Storage
  • Networking
  • The Default Bridge Network
  • User-Defined Bridge Networks
  • Docker Network Commands
  • Creating a User-Defined Bridge Network
Open Container Initiative and Container Runtime Interface
  • Open Container Initiative (OCI)
  • Docker
  • Docker Engine Architecture
  • runC
  • containerd
  • containerd Benefits
  • CRI-O
  • CRI-O Components
  • Kubernetes and CRI-O
  • Using Container Runtimes with Minikube
  • Docker Runtime and Kubernetes
  • Putting Things Together
  • Summary
Kubernetes Architecture
  • Kubernetes Basics
  • What is Kubernetes?
  • Container Orchestration
  • Architecture Diagram
  • Components
  • Kubernetes Cluster
  • Master Node
  • Kube-Control-Manager
  • Nodes
  • Pod
  • Using Pods to Group Containers
  • Label
  • Label Syntax
  • Label Selector
  • Annotation
  • Persistent Storage
  • Resource Quota
  • Interacting with Kubernetes
Working with Kubernetes
  • Installation
  • Startup
  • Kubernetes Tools
  • kubectl Command Line Interface
  • API Proxy
  • Dashboard
  • Kubernetes Component Hierarchy
  • Deployments
  • Deployment Commands
  • Updating Deployments
  • Network Considerations
  • Services
  • Namespaces
  • Labels
  • Annotations
  • Other Useful Commands
  • Summary
Kubernetes Workload
  • Kubernetes Workload
  • Managing Workloads
  • Imperative commands
  • Imperative Object Configuration
  • Declarative Object Configuration
  • Configuration File Schema
  • Understanding API Version
  • Obtaining API Versions
  • Stateless Applications
  • Sample Deployment Manifest File
  • Working with Deployments
  • Stateful Applications
  • Sample Stateful Manifest File
  • Working with StatefulSet
  • Jobs
  • Sample Job Manifest File
  • Working with Batch Job
  • DaemonSets
  • Sample Daemon Manifest File
  • Rolling Updates
Scheduling and Node Management
  • Kubernetes Scheduler
  • Skip Kubernetes Scheduler
  • Scheduling Process
  • Scheduling Process - Predicates and Priorities
  • Scheduling Algorithm
  • Kubernetes Scheduling Algorithm
  • Scheduling Conflicts
  • Controlling Scheduling
  • Label Selectors
  • Node Affinity and Anti-affinity
  • Node Affinity Example
  • Node Antiaffinity Example
  • Taints and Tolerations
Managing Networking
  • Kubernetes Networking Components
  • The Kubernetes Network Model
  • Networking Scenarios
  • Container-Container Communication
  • Pod-Pod Communication
  • 1.3 Pod-Service Communication
  • External-Service Communication
  • Accessing Applications
  • Useful Commands
  • Container Network Interface (CNI)
  • What is CNI’s Role?
  • CNI Configuration Format
  • Sample CNI Configuration
  • Running the CNI Plugins
Managing Persistent Storage
  • Storage Methods
  • Container OS file system storage
  • Docker Volumes
  • Kubernetes Volumes
  • K8S Volume Types
  • Cloud Resource Types
  • configMaps
  • Creating configMaps from Literals
  • Creating configMaps from files
  • Using configMaps
  • emptyDir
  • Using an emptyDir Volume
  • Other Volume Types
  • Persistent Volumes
  • Creating a Volume
  • Persistent Volume Claim
  • Persistent Volume
  • Pod that uses Persistent Volume
  • Secrets
  • Creating Secrets from Files
  • Creating Secrets from Literals
  • Using Secrets
  • Security Context
  • Security Context Usage
Working with Helm
  • What is Helm?
  • Installing Helm
  • Helm and KUBECONFIG
  • Helm Features
  • Helm Terminology
  • Searching for Charts with helm CLI
  • Adding Repositories
  • Helm Hub - Search
  • Helm Hub - Chart Page
  • Installing a Chart
  • Upgrading a Release
  • Rolling Back a Release
  • Creating Custom Charts
  • Common Chart Files
  • Helm Templates
  • Installing A Custom Chart
  • Packaging Custom Charts
Logging, Monitoring, and Troubleshooting
  • Differences Between Logging and Monitoring
  • Logging in Kubernetes
  • Basic Logging
  • Logging Agents
  • Fluentd and Elastic Stack
  • Monitoring with Prometheus
  • Kubernetes and Prometheus - Metrics
  • Alerting
  • Debugging Pods
  • Debugging Nodes
  • Debugging Replication Controllers and Services
  • Upgrading Kubernetes
  • Upgrade Process
  • Determine Which Version to Upgrade To
  • Upgrade kubeadm
  • Upgrade Control Plane Node
  • Upgrade kubelet and kubectl
  • Upgrade Worker Nodes
  • Recovering From a Failure State
Continuous Integration Fundamentals
  • Jenkins Continuous Integration
  • Jenkins Features
  • Running Jenkins
  • Downloading and Installing Jenkins
  • Running Jenkins as a Stand-Alone Application
  • Running Jenkins on an Application Server
  • Installing Jenkins as a Windows Service
  • Different types of Jenkins job
  • Configuring Source Code Management (SCM)
  • Working with Subversion
  • Working with Git
  • Build Triggers
  • Schedule Build Jobs
  • Polling the SCM
  • Maven Build Steps
  • Configuring Jenkins to Access Kubernetes
  • Jenkins Pipeline
  • Jenkins Pipeline Output
  • Installing Jenkins Plugins
Conclusion

Training Materials

All Docker with Kubernetes training attendees receive comprehensive courseware.

Software Requirements

A complete remote environment is included for each student with the class. You will need Internet access, a modern web browser, and an SSH client to access the environment.



Learn faster

Our live, instructor-led lectures are far more effective than pre-recorded classes

Satisfaction guarantee

If your team is not 100% satisfied with your training, we do what's necessary to make it right

Learn online from anywhere

Whether you are at home or in the office, we make learning interactive and engaging

Multiple Payment Options

We accept check, ACH/EFT, major credit cards, and most purchase orders



Recent Training Locations

Alabama

Birmingham

Huntsville

Montgomery

Alaska

Anchorage

Arizona

Phoenix

Tucson

Arkansas

Fayetteville

Little Rock

California

Los Angeles

Oakland

Orange County

Sacramento

San Diego

San Francisco

San Jose

Colorado

Boulder

Colorado Springs

Denver

Connecticut

Hartford

DC

Washington

Florida

Fort Lauderdale

Jacksonville

Miami

Orlando

Tampa

Georgia

Atlanta

Augusta

Savannah

Hawaii

Honolulu

Idaho

Boise

Illinois

Chicago

Indiana

Indianapolis

Iowa

Cedar Rapids

Des Moines

Kansas

Wichita

Kentucky

Lexington

Louisville

Louisiana

New Orleans

Maine

Portland

Maryland

Annapolis

Baltimore

Frederick

Hagerstown

Massachusetts

Boston

Cambridge

Springfield

Michigan

Ann Arbor

Detroit

Grand Rapids

Minnesota

Minneapolis

Saint Paul

Mississippi

Jackson

Missouri

Kansas City

St. Louis

Nebraska

Lincoln

Omaha

Nevada

Las Vegas

Reno

New Jersey

Princeton

New Mexico

Albuquerque

New York

Albany

Buffalo

New York City

White Plains

North Carolina

Charlotte

Durham

Raleigh

Ohio

Akron

Canton

Cincinnati

Cleveland

Columbus

Dayton

Oklahoma

Oklahoma City

Tulsa

Oregon

Portland

Pennsylvania

Philadelphia

Pittsburgh

Rhode Island

Providence

South Carolina

Charleston

Columbia

Greenville

Tennessee

Knoxville

Memphis

Nashville

Texas

Austin

Dallas

El Paso

Houston

San Antonio

Utah

Salt Lake City

Virginia

Alexandria

Arlington

Norfolk

Richmond

Washington

Seattle

Tacoma

West Virginia

Charleston

Wisconsin

Madison

Milwaukee

Alberta

Calgary

Edmonton

British Columbia

Vancouver

Manitoba

Winnipeg

Nova Scotia

Halifax

Ontario

Ottawa

Toronto

Quebec

Montreal

Puerto Rico

San Juan