• Understand what problems Docker solves.
  • Understand when Docker might not be the appropriate solution.
  • Be able to create basic Docker images.
  • Be able to run Docker containers


  • Developers
  • Tech Leaders
  • QA engineers
  • DevOps engineers
  • Automation engineers

Course Format

  • Typically 8 academic hours. One whole day 9:00-17:00 or two half-days.
  • The course includes approximately 40% hands-on lab work.


  • Understanding of Linux
  • Basic Administrative knowledge of Linux
  • At least 1 year of experience in the software development world.
  • Bring a computer where you have rights to install new software.


Introduction to Docker

  • Why use Docker?
  • What is Docker?
  • How can Docker bridge the gap between Developers, QA, and Operations?
  • Installing Docker on Windows, macOS, Linux
  • Public Docker Images
  • Docker Registry / Docker HUB
  • Difference between a Docker Image and a Docker Container
  • Docker Daemon (Server), Client

Running the first Docker container

  • Run a Docker container - Hello World!
  • Download a docker image (pull)
  • Docker on the command line
  • List docker containers
  • Cleaning up the dead containers.
  • Remove docker container
  • Name a docker container
  • List docker images
  • Remove docker images

Create a Docker image manually

  • Use the Ubuntu Docker image
  • Use the CentOS Docker image
  • Install packages in the container
  • Create files on the container
  • Stop container
  • Restart container
  • Copy file from container
  • Create image from container
  • Distribute command line script in an image

Create a Docker image using Dockerfile

  • Create a simple image
  • FROM
  • RUN
  • CMD
  • COPY
  • Distributing a command-line application.
  • Accessing the disk on the host system.
  • ENV
  • Layers
  • Caching
  • Tagging an image

Docker compose

  • Run several Docker images at once
  • Rebuild docker image when running with docker-compose
  • Run multi-host applications using docker-compose.
  • Create an image in the repository (from GitHub)
  • Networking with docker-compose

Dockerfile commands

  • ARG
  • ADD
  • CMD
  • COPY
  • ENV
  • FROM
  • RUN

The Python track

  • Distribute a web application: Flask
  • Distribute a web application: Flask + Nginx
  • Distribute a web application: Flask + Nginx + MongoDB
  • Mapping ports of the Docker image and the local system.

Use cases for Docker

  • Distributing a pre-configured system.
  • Distributing a database system.
  • Filesystems
  • Volumes

Let's talk

If you would like to bring this course to your organization, let's talk about it! You can reach me via email at or you can go ahead and schedule a chat:

Schedule a call