This Introduction to Docker course is designed to familiarize students with the benefits of containerization for both systems and application design. This course will provide the fundamental knowledge needed to speed up development and application deployment using Docker.

Course Duration: 3 days
Course Objectives:
  • Understand how to build and manage containers
  • Design, build and deploy fully functional applications
  • Guide the application of these tools in the company
Course Outline:
  • Introduction to Containers and Docker
    • Background and History
      • Virtualization, Docker, Coreos, etc.
    • Levels of Virtualization
      • Difference Between VMWare Style and LXC Style
    • Value of an LXC Wrapper
    • Introduction to Images and Containers
      • Format, Contents, Specs
    • Runtime Environment and Constraints
    • Building and Running Containers
    • Daemon Hosting Model
    • Contents of Running Containers
    • Exploring the Host
    • Managing Container Execution
      • Start, Stop, SSH, Exit, Terminate, Lifecycles
    • File Systems
      • Host vs. Container and OS Options, Benefits
    • Managing Images

 

  • Expanding Beyond the Containers
    • Image Repositories
      • Public vs Private
    • Networking
      • Between Local Containers, Between Machines, etc.
    • Application Considerations for Networking and File System
    • Strategies and Considerations for Designing Apps in this Model
    • Managing Volumes
    • Orchestrating Multiple Containers
    • Responding to Topology and Binary Changes
      • Automate Build and Deploy
    • Remote Management
      • Manage Servers in Deployed Scenarios
    • Security Considerations
    • Tools: etcd, systemd, etc.

 

  • Moving to Production
    • Best Practices and Tools
    • Mesos, Kubernetes, Fleet
    • Load Balancing, Networking Changes for Scale, etc.
    • Labs, Demos and Discussion