Docker Fundamentals

I am the author of a practical, introductory training course for the Docker platform. If you would like to book a private class on behalf of your organisation, please get in touch.

Class Title: Docker Fundamentals

Duration 2 Days
Audience The Docker Fundamentals training course is for software developers and systems administrators seeking to gain a foundational understanding of the Docker platform
Pre-requisites Delegates should have experience with the Linux command line interface, and have a basic knowledge of networking
Course Objectives Through a mixture of lectures and hands on labs, delegates will:
  • Establish an understanding of the purpose of the Docker platform
  • Identify the key architectural components of Docker
  • Become familiar with the management of container instances
  • Learn how to expose containers to the network, and share data with containers
  • Gain practical experience of working with Docker images
  • Understand the principals behind container orchestration
Course Content The following content will be covered during the course of the 2 days:

Introducing Docker
  • Overview
  • Software Distribution Idiosyncrasies
  • Containers vs. Virtual Machine
  • Benefits & Use Cases
  • History of Container Technologies
  • Linux Kernel Capabilities
  • Lab: Containers from First Principles
Installing Docker
  • Supported Platforms
  • Installing Docker from the Docker Project Repositories
  • Installing Docker for DEB Package Based Linux Distributions
  • Installing Docker for RPM Package Based Linux Distributions
  • Provisioning Docker Hosts with Docker Machine
  • Docker Toolbox
  • Lab: Installing Docker
Docker Architecture
  • Architecture Overview
  • Docker Images
  • The Container Runtime
  • Storage Drivers
  • Docker Client
  • Docker Daemon
  • Lab: Configuring the Docker Daemon
The Container Lifecycle
  • Container States
  • Creating, Starting, and Stopping Containers
  • Interacting with Containers
  • Removing Containers
  • Lab: Managing the Container Lifecycle
Container Utilities
  • Container and Image Events
  • Inspecting Containers and Images
  • Container Logs and Stats
  • Managing Containers - Filtering and Formatting
  • Miscellaneous Utilities
  • Lab: Working with Container Utilities
Working With Docker Images
  • Finding, Pulling and Using Docker Images
  • Creating Images from Containers
  • Retrieving Image Information
  • Managing Image Size
  • Archiving Images
  • Removing and Tagging Images
  • Lab: Working with Docker Images
Networking With Docker
  • Networking Overview
  • Enabling Container Networking
  • Legacy Networking
  • Container Network Model
  • Networking User Interface
  • Network Types
  • Exposing Container Ports
  • Names and Name Resolution
  • Docker Proxy
  • Lab: Networking Containers
Data and Docker Volumes
  • Docker Volumes
  • Volume Types
  • Volumes User Interface
  • Legacy Data Volumes
  • Practical Considerations
  • Lab: Data Persistence with Data Volumes
Building Images With Dockerfiles
  • Overview of Build Process
  • Build User Interface
  • Dockerfile Instruction Set
  • Build Cache
  • Lab: Building and Image with a Dockerfile
Developing With Docker
  • Overview
  • Language Stacks
  • Docker Compose
  • Lab: Getting Started with Docker Compose
Docker Registries
  • Overview of Docker Registries
  • The Docker Hub
  • Automated Builds and Webhooks
  • Lab: Using the Docker Hub
Orchestrating Containers
  • Orchestration Overview
  • Docker Swarm
  • Swarm Clusters
  • Swarm Nodes
  • Swarm Services and Tasks
  • Service Consumption
  • Lab: Introduction to Docker Swarm Mode

If you'd like more information, please drop me an email.