Course 783:
Essential Docker:
Packaging and Deploying Portable Applications

(4 days)


Course Description

This course shows how Docker implements and manage containers. After a short introduction on the use case of containers, the course covers the basics of building and deploying containers. This is followed by the details of images and how to use a container repository. With the basics covered, the course goes on to advanced topics including: automatic provisioning (Docker Machine), data containers, multi-process application in one container, and using many containers with Docker Compose. How to use Docker Swarm for clustering. The new Docker Orchestration is introduced and contrasted with Kubernetes. Then follows an introduction to resource control. The course finishes with a quick look at CoreOS, bare metal containers.

Learning Objectives

  • Uses of containers
  • Create Docker containers
  • Build Docker images
  • Build containers
  • Use Docker Compose to build complex container-based apps
  • Use Docker Machine for provisioning
  • Understand how to create and use data stored in a container
  • Be able to network container together, use port mapping, and build private networks
  • Know how to use Docker Swarm for clustering
  • Be introduced to Docker Orchestration and how its approach is different from Kubernetes
  • Know how to create multi-process container and use Docker Compose to create multi-container applications
  • Be introduced to CoreOS and bare metal containers
  • Be introduced to resource control of containers

Who Should Attend

The course is suitable for anyone involved in the development and deployment of applications for their organization including architects, developers, administrators, and testers.

Course Outline

Introduction to Containers and Docker

  • Virtualization
  • Containers
  • Use Cases for Containers
  • Docker Architecture
  • Technologies Underlying Docker

Up and Running with Docker

  • Starting a Container
  • Attaching a Container
  • Daemon Containers
  • Looking Inside a Container
  • Container Restarts
  • Removing a Container
  • Interactive Mode
  • Signals and Containers

Working with Images

  • What Is an Image?
  • Listing and Searching for Images
  • Building Your Own Images
  • Working with the Build Cache
  • Launching Containers from Images


  • What Is a Repository?
  • Pushing Images to the Hub
  • Removing an Image
  • Searching a Repository
  • Deleting from a Repository

Automatic Container Provisioning

  • Using Docker Machine
  • Scaling with Docker

Data and Docker

  • Data Volumes
  • Host Directories and Files as Data Volumes
  • Managing Data in Containers


  • Linking Containers Together
  • Port Mapping
  • Private Networks
  • Overlay Networks
  • Load Balancing
  • Accessing Containers from the Internet
  • Iptables and Docker Interactions

Multi-Process Applications

  • Working with Multiple Processes in One Container
  • Using Docker Compose—Multi-Container Application
  • Class Example: Using Compose and a Web Framework

Clustering and Scheduling

  • Background on how Containers are scheduled
  • Docker Swarm
  • Using Compose with Swarm
  • Introduction to Docker Orchestration
  • Docker Orchestration vs. Kubernetes

Resource Controls

  • Using cgroups
  • Access Controls
  • Iptables

CoreOS and Containers

  • Using to CoreOS
  • CoreOS vs.  Other Linux Systems

Please Contact Your ROI Representative to Discuss Course Tailoring!