Docker Training



ABOUT


Docker has been acclaimed as a revolution for the IT world. This open source project is already making a lot of changes on how developers and system administrators setup new server and web environments. If you never heard about Docker, I’ll try to explain it in a couple of lines with Wikipedia’s help:


Docker is an open-source project that automates the deployment of applications inside software containers, providing that way an additional layer of abstraction and automatization of operating system–level virtualization on Linux.Docker uses resource isolation features of the Linux kernel such as cgroups and kernel namespaces to allow independent “containers” to run within a single Linux instance, avoiding the overhead of starting virtual machines.


We have two courses on Docker...
Docker Fundamentals
Number of Day - 1
This course covers the foundations of the Docker platform, including an overview of the platform components, images, containers and repositories.


Docker Advance and Operations

Number of Day - 2

This also course covers topics to help you operate a Dockerized application environment. From understanding Docker Orchestration with Machine, Swarm and Compose, to security best practices and troubleshooting Docker containers. Private repository and registry concepts are also explained in this course. This two day course is designed to help new and experienced systems administrators learn to use Docker to control the Docker daemon, security, Docker Machine, Swarm, and Compose.


OBJECTIVES


Why do developers like it?

With Docker, developers can build any app in any language using any toolchain. “Dockerized” apps are completely portable and can run anywhere - colleagues’ OS X and Windows laptops, QA servers running Ubuntu in the cloud, and production data center VMs running Red Hat. Developers can get going quickly by starting with one of the 13,000+ apps available on Docker Hub. Docker manages and tracks changes and dependencies, making it easier for sysadmins to understand how the apps that developers build work. And with Docker Hub, developers can automate their build pipeline and share artifacts with collaborators through public or private repositories.

Docker helps developers build and ship higher-quality applications, faster.


Why do sysadmins like it?

Sysadmins use Docker to provide standardized environments for their development, QA, and production teams, reducing “works on my machine” finger-pointing. By "Dockerizing" the app platform and its dependencies, sysadmins abstract away differences in OS distributions and underlying infrastructure.

In addition, standardizing on the Docker Engine as the unit of deployment gives sysadmins flexibility in where workloads run. Whether on-premise bare metal or data center VMs or public clouds, workload deployment is less constrained by infrastructure technology and is instead driven by business priorities and policies. Furthermore, the Docker Engine’s lightweight runtime enables rapid scale-up and scale-down in response to changes in demand.

Docker helps sysadmins deploy and run any app on any infrastructure, quickly and reliably.


PRE-REQUISITES


  • A basic understanding of running commands in Linux
  • Familiarity with Linux concepts like networking, software repos and storage
  • Familiarity with concepts related to deploying applications

FEATURES


  • ✔ 30 Hours instructor led online class
  • ✔ Hands on Approach - We emphasize on learning by doing.
  • ✔ Life time free re-enrollment to future DevOps courses
  • ✔ Life time free access to all learning materials including
  • ✔ Class recordings
  • ✔ Presentations
  • ✔ Sample Code
  • ✔ Projects
  • ✔ Total Lab Infrasture in cloud and 24x7 available
  • ✔ 70% of the class is consist of Lab
  • ✔ Each week assignments(total 4) with personal assistance
  • ✔ Two real time senario based projects with standard evaluation
  • ✔ 24x7 online support to queries during and after the course completion
  • ✔ 1 dedicated class for Interview preparations

  • AGENDA


    We have two courses on Docker...
    Docker Fundamentals
    Number of Day - 1
    This course covers the foundations of the Docker platform, including an overview of the platform components, images, containers and repositories.


    Docker Advance and Operations
    Number of Day - 2
    This also course covers topics to help you operate a Dockerized application environment. From understanding Docker Orchestration with Machine, Swarm and Compose, to security best practices and troubleshooting Docker containers. Private repository and registry concepts are also explained in this course. This two day course is designed to help new and experienced systems administrators learn to use Docker to control the Docker daemon, security, Docker Machine, Swarm, and Compose.


    The basic course program is outlined here:


      1. The Rise of the Virtual Machine

      • ✔ Containers vs VMs
      • ✔ What Are Containers?
      • ✔ Containers Under the Hood
      • ✔ Docker
      • ✔ The Future of Docker and Containers

      2. Installing and Updating Docker - Latest Stable Version Docker 1.12

      • ✔ Installing Docker on Ubuntu
      • ✔ Installing Docker on CentOS
      • ✔ Updating Docker
      • ✔ Granting Docker Contrul to Non-root Users
      • ✔ Configuring Docker to Communicate Over the Network
      • ✔ Playing Around with Our First Docker Container
      • ✔ HandsOn Session

      3. Major Docker Components

      • ✔ Module Intro
      • ✔ The High Level Picture
      • ✔ The Docker Engine
      • ✔ Docker Images
      • ✔ Docker Containers
      • ✔ Docker Hub
      • ✔ A Closer Look at Images and Containers
      • ✔ Vulumes
      • ✔ Persistent Data and Production Containers
      • ✔ Image Layers
      • ✔ Union Mounts
      • ✔ Where Images Are Stored
      • ✔ Copying Images to Other Hosts
      • ✔ The Top Writeable Layer of Containers
      • ✔ One Process per Container
      • ✔ Commands for Working with Containers
      • ✔ HandsOn Session

      4. Container Management

      • ✔ Module Intro
      • ✔ Starting and Stopping Containers
      • ✔ PID 1 and Containers
      • ✔ Deleting Containers
      • ✔ Looking Inside of Containers
      • ✔ Low-level Container Info
      • ✔ Getting a Shell in a Container
      • ✔ HandsOn Session

      Docker Commands

      • ✔ The run Command
      • ✔ Managing Containers
      • ✔ Docker Info
      • ✔ Container Info
      • ✔ Dealing with Images
      • ✔ Using the Registry
      • ✔ HandsOn Session

      5. Building from a Dockerfile

      • ✔ Module Intro
      • ✔ Introducing the Dockerfile
      • ✔ Creating a Dockerfile
      • ✔ Building an Image from a Dockerfile
      • ✔ Inspecting a Dockerfile from Docker Hub
      • ✔ HandsOn Session

      10. How Images Get Built

      • ✔ The Build Context
      • ✔ Image Layers
      • ✔ Caching
      • ✔ Base Images
      • ✔ Dockerfile Instructions
      • ✔ HandsOn Session

      6. Working with Registries

      • ✔ Module Intro
      • ✔ Creating a Public Repo on Docker Hub
      • ✔ Using Our Public Repo on Docker Hub
      • ✔ Docker Hub Enterprise
      • ✔ HandsOn Session

      7. Diving Deeper with Dockerfile

      • ✔ Module Intro
      • ✔ The Build Cache
      • ✔ Dockerfile and Layers
      • ✔ Building a Web Server Dockerfile
      • ✔ Launching the Web Server Container
      • ✔ Reducing the Number of Layers in an Image
      • ✔ The CMD Instruction
      • ✔ The ENTRYPOINT Instruction
      • ✔ The ENV Instruction
      • ✔ Vulumes and the VulUME Instruction
      • ✔ HandsOn Session

      8. Docker Networking

      • ✔ Module Intro
      • ✔ The docker0 Bridge
      • ✔ Virtual Ethernet Interfaces
      • ✔ Network Configuration Files
      • ✔ Exposing Ports
      • ✔ Viewing Exposed Ports
      • ✔ Linking Containers
      • ✔ HandsOn Session

      9. Troubleshooting

      • ✔ Module Intro
      • ✔ Docker Daemon Logging
      • ✔ Container Logging
      • ✔ Planning Image Builds
      • ✔ Intermediate Images
      • ✔ The docker0 Bridge
      • ✔ IPTables
      • ✔ HandsOn Session

      Dockerizing Your Microservices

      • ✔ Learning objectives
      • ✔ Understand how docker can benefit a microservice architecture
      • ✔ Create a Docker container for each app
      • ✔ Configure your apps for both production and development

      Deploying Single Instance Single Container Apps with Docker Machine
      Development of Microservices-Based Apps with Docker Compose
      Deploying Single Instance Multi-Container Apps with Docker Compose and Docker Machine

      10. Security and QoS for Docker Containers

      • ✔ Filesystem restrictions
      • ✔ Linux capabilities
      • ✔ Securing containers
      • ✔ Understanding Docker security I – kernel namespaces
      • ✔ pid namespace
      • ✔ net namespace
      • ✔ User namespace
      • ✔ Understanding Docker security II – cgroups
      • ✔ HandsOn Session

      11. Debugging Containers

      • ✔ Process Output
      • ✔ Process Inspection
      • ✔ Contrulling Processes
      • ✔ Network Inspection
      • ✔ Image History
      • ✔ Inspecting a Container
      • ✔ Filesystem Inspection
      • ✔ HandsOn Session

      Orchestrating Docker

      • ✔ Docker Compose
      • ✔ Docker Swarm
      • ✔ Docker Machine
      • ✔ Composing Services
      • ✔ Building Applications With Docker Compose
      • ✔ HandsOn Session

      Docker Compose

      • ✔ Installing Docker Compose
      • ✔ Docker Compose YAML file
      • ✔ Docker Compose
      • ✔ Installing Docker Compose
      • ✔ The Docker Compose commands
        • ✔ build
        • ✔ kill
        • ✔ logs
        • ✔ port
        • ✔ ps
        • ✔ pull
        • ✔ restart
        • ✔ rm
        • ✔ run
        • ✔ scale
        • ✔ start
        • ✔ stop
        • ✔ up
        • ✔ version
      • ✔ Docker Compose – examples
      • ✔ The Docker Compose usage
      • ✔ HandsOn Session
      • ✔ Scale up to 100 nodes in 1 second
      • ✔ HandsOn Session

      Docker Swarm

      • ✔ Docker Swarm
      • ✔ Docker Swarm install
      • ✔ Docker Swarm components
      • ✔ Docker Swarm usage
      • ✔ The Docker Swarm commands
      • ✔ The Docker Swarm topics
      • ✔ Discovery services
      • ✔ Advanced scheduling
      • ✔ The Swarm API
      • ✔ The Swarm cluster example
      • ✔ Overlay Networks
      • ✔ Logging Drivers
      • ✔ HandsOn Session

      Networking in a Docker Cluster

      • ✔ Docker Swarm
      • ✔ Docker Swarm networking
      • ✔ Kubernetes
      • ✔ Deploying Kubernetes on AWS
      • ✔ Kubernetes networking and its differences to Docker networking
      • ✔ Deploying the Kubernetes pod
      • ✔ HandsOn Session

      Overlay network with Docker Machine and Docker Swarm

      • ✔ Prerequisites
      • ✔ Key-value store installation
      • ✔ Create a Swarm cluster with two nodes
      • ✔ Creating an overlay network
      • ✔ Creating containers using an overlay network
      • ✔ HandsOn Session

      Docker Network Plugins

      • ✔ Docker networking
      • ✔ Multi-host networking with overlays
      • ✔ Launching Discovery
      • ✔ Readying the Swarm
      • ✔ Adding the overlay network
      • ✔ Using the overlay network
      • ✔ Back to Consul
      • ✔ Composing multi-host networks
      • ✔ Summing up multi-host networking
      • ✔ HandsOn Session

      Thinking in Terms of Microservices

      • ✔ Understand microservices
      • ✔ Understand what problems microservices sulve
      • ✔ Understand the complexities introduced by microservices
      • ✔ Define an example of a microservice-based architecture