Docker Training

Duration

2 days

Course Description

Linux containers are changing the way companies think about service development and deployment. Containers play a vital role in the modern data-center, and Docker is leading the way. This course covers all the core features of Docker including: container creation and management, interacting with Docker hub, using Dockerfile to create and manage custom images, advanced Docker networking (how to safely expose container services to the world, and link containers), the use of Docker volumes to manage persistent data, and Docker Compose to build multi-container applications. Emphasis is placed on best practices and how to secure Docker installations and containers. Course culminates with comprehensive labs where students use Docker, Git, and a continuous integration server to automate the testing of containerized applications.

Prerequisites

Proficiency with the Linux CLI. A broad understanding of Linux system administration.

Supported Distributions

Red Hat Enterprise Linux 7

Course Outline

  1. CONTAINER TECHNOLOGY OVERVIEW
    1. Application Management Landscape
    2. Application Isolation
    3. Container Resource Control & Security
    4. Container Types
    5. Container Ecosystem

    LAB TASKS

    1. Containers via libvirt-lxc
  2. FUNDAMENTALS
    1. Installing Docker
    2. Docker Control Socket
    3. Creating a New Container
    4. Listing Containers
    5. Viewing Container Operational Details
    6. Running Commands in an Existing Container
    7. Interacting with a Running Container
    8. Stopping, Starting, and Removing Containers

    LAB TASKS

    1. Docker Basics
  3. IMAGES
    1. Docker Images
    2. Listing and Removing Images
    3. Searching for Images
    4. Downloading Images
    5. Committing Changes
    6. Uploading Images
    7. Export/Import Images
    8. Save/Load Images

    LAB TASKS

    1. Docker Images
  4. DOCKERFILE
    1. Dockerfile
    2. Caching
    3. docker build
    4. Dockerfile Instructions
    5. Defining Container Executable
    6. Running Commands
    7. Getting Files into the Image
    8. ENV and WORKDIR
    9. Best Practices

    LAB TASKS

    1. Dockerfile Fundamentals
  5. NETWORKING
    1. Overview
    2. Data-Link Layer Details
    3. Network Layer Details
    4. Hostnames and DNS
    5. Local Host <–> Container
    6. Container <–> Container
    7. Container <–> Container: Links
    8. Remote Host <–> Container

    LAB TASKS

    1. Docker Networking
    2. Docker Ports and Links
  6. VOLUMES
    1. Volume Concepts
    2. Creating and Using Volumes
    3. Changing Data in Volumes
    4. Removing Volumes
    5. Backing up Volumes

    LAB TASKS

    1. Docker Volumes
  7. DOCKER COMPOSE
    1. Concepts
    2. Compose CLI
    3. Defining a Service Set

    LAB TASKS

    1. Docker Compose
  1. CONTINUOUS INTEGRATION WITH GITLAB, GITLAB CI, AND DOCKER LAB TASKS
    1. GitLab and GitLab CI Setup
    2. Unit and Functional Tests