Basic usage of Docker with a lot of hands-on exercises. Useful for both developers and system administrators. [+]
Some familiarity with command line and Linux is an advantage.
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 support Docker. It will be Docker Machine, Docker Compose and Docker Swarm.
What is Docker?
Major components of Docker
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
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 microservices architecture
Finding and downloading existing images
Docker Hub and local repository
Sharing images with others
Deploying a private image repository
Networking of containers
Container linking and naming
Creating and managing custom networks
Network over many Docker hosts (overlay)
Data in containers
Host directories and files as data volume
Data volume containers
Data volumes shared between Docker Hosts
Backup and restore of data volumes
Overview of Docker Compose
Running multi-container applications by using one command
Defining services, networks, volumes and variables
Setting up runtime constraints on resources
Introduction to native Docker clustering
Docker Swarm strategies and filters