Docker for Developers

© Elephant Scale
Jan. 13, 2020

Overview

Containerization is one of the most important developments in the application deployment in many years and paves the way for many other exciting possibilities in dev/ops.

Docker is the industry-standard container format and Docker tools are the cross-platform standard for creating containers.

What you will learn

  • Containerization Technologies
  • How to use Docker
  • Details of Docker Containers

Audience

Developers, Architects

Duration

3 days

Format

Lectures and hands-on labs. (50%, 50%)

Prerequisites

  • Some background with Unix or Linux including the command line
  • Some knowledge of a programming language such as Java, C#, Python, Node.js, etc.

Lab environment

  • A reasonably modern laptop
  • Unrestricted connection to the Internet. Laptops with overly restrictive VPNs or firewalls may not work properly
  • Chrome browser
    • SSH client for your platform

Detailed Outline

Container Management

    • Starting & Stopping Containers
    • PID 1 and Containers
    • Deleting Containers
    • Looking inside of Containers
    • Low-Level Container Info
    • Getting a Shell in a Container
    • Wrap-up

Building from Dockerfile

    • Introducing the Dockerfile
    • Creating a Dockerfile
    • Building an image from a Dockerfile
    • Inspecting a Dockerfile from DockerHub

Working with the Registry

Creating a Public repo on Docker Hub,

    • Using our Public repo on Docker Hub,
    • Build a Private Registry,
    • Using a Private Registry,
    • Docker Hub Enterprise
    • Wrap-up

Diving Deeper into Dockerfile

    • The Build cache
    • Dockerfile and Layers
    • Building a WebServer Container
    • The CMD Instruction
    • The ENTRYPOINT Instruction
    • The ENV Instruction
    • Volumes and the VOLUME Instruction
    • Module Recap

Networking

    • docker0 bridge
    • Virtual Ethernet interfaces
    • network configuration files
    • exposing ports
    • Viewing exposed reports
    • Linking Containers
    • Recap

Troubleshooting and Debugging

    • Docker daemon logging
    • container logging
    • Planning image builds
    • Intermediate Images
    • Docker0 bridge
    • IPTables
    • Recap

Orchestration

    • Docker machine
    • Swarm
    • Compose