Duration
21 hours (usually 3 days including breaks)
Requirements
Some familiarity with command line and Linux is an advantage.
Overview
Docker is a platform for developers and sysadmins to maintain distributed applications. It consists of a runtime to run containers and a service for sharing containers.
With docker the same app can run unchanged on laptops, dedicated servers and virtual servers.
This course, during the two first days, teaches the basic usage of Docker, useful both for developers and system administrators. The course includes a lot of hands on exercises and the participants will practice in their own Docker environment and build their own Docker images.
On the last day participants will learn about more advanced tools that supports Docker. It will be Docker Machine, Docker Compose and Docker Swarm.
Course Outline
What is Docker?
- Use cases
- Major components of Docker
- Docker architecture
- Underlying technology
Installation of Docker
- Installation on Ubuntu and Windows
- Using Docker Machine for host provisioning
- Docker Machine drivers for cloud providers
Container life cycle
- Creating and running containers
- Stopping and restarting
- Investigating a container
- Viewing the logs
- Looking at processes
- Removing a container and its data
Dockerizing applications
- The hello world example
- Interactive Bash container
- Building an image by committing changes
- Building an image from a Dockerfile
- Automated builds based on GitHub
- Running more than one process in a container
- gosu helper tool
- Running a webapp in a single container
- Running a webapp in micro services architecture
Managing images
- Finding and downloading existing images
- Docker Hub and local repository
- Sharing images with others
- Deploying a private image repository
Networking of containers
- Port mapping
- Container linking and naming
- Creating and managing custom networks
- Network over many Docker hosts (overlay)
Data in containers
- Data volumes
- Host directories and files as data volume
- Data volume containers
- Data volumes shared between Docker Hosts
- Backup and restore of data volumes
Docker Compose
- Overview of Docker Compose
- Running multi-container applications by using one command
- Defining services, networks, volumes and variables
- Setting up runtime constraints on resources
Docker Swarm
- Introduction to native Docker clustering
- Discovery services
- Docker Swarm strategies and filters