Docker is a tool which makes it easier to create, deploy and run applications using containers. A container encapsulates a complete execution environment. As a result the container can be run on any hardware or operating system that supports Docker.

This course will teach you everything that you need to know to start using Docker.

Course Description

Day 1

  • What is Docker?
    • Virtualisation
    • Docker versus VMWare and VirtualBox
    • Images and Containers
    • Daemon and Client
  • Using Images
    • Hello World - busybox
    • docker pull - fetch images
    • docker images - list fetched images
    • docker run - create a container
      • Naming a container (--name)
      • Handling cleanup (--rm)
      • Detach (--detach)
    • docker logs - output from containers
    • docker ps - list running containers
    • docker stop - stop running containers
    • docker rm - delete stopped containers
    • docker rmi - delete images we no longer need
  • Writing a Dockerfile
    • Layers and the Union File System
    • FROM - Specifying the base image
    • Tags
    • COPY - Copying things to the image
    • ADD - Another way to get stuff onto the image
    • RUN - Executing processes on the image
      • Using apt to add software
      • Asserting non-interactive mode
    • USER - Which user?
    • WORKDIR - Setting the working directory
    • EXPOSE - What ports are available?
    • CMD - What will the image be running?
  • Building an Image
    • docker build - build an image
    • Caching
    • Cleaning up temporary files
    • The build context and .dockerignore

Day 2

  • Dockerfile Revisited
    • Best practices
    • ENV - Default values for environment variables
  • Debugging
    • Getting “inside” an image
    • docker exec
    • docker attach
  • Volumes
    • Sharing data
    • Volumes on the host
    • Named volumes
  • Networking
    • docker network
    • Network drivers
    • Bridge, Overlay and Host network
  • Sharing Images
    • Docker Hub
    • Docker Registry
    • docker push - publishing images
    • docker search - finding images
  • Deploying
  • Compose
    • Running multiple containers
    • Compose file syntax
    • Ports, volumes and links
    • Commands and flags
  • Swarm
    • Distributing containers
    • Setup
    • Deploying application on a cluster


  1. Follow these instructions to install Docker.
  2. Create accounts on the following services:
  3. The UNIX Essentials course is useful for understanding some of the details of a Dockerfile.

Book now!

Training Philosophy

Our training emphasises practical skills. So, although you'll be learning concepts and theory, you'll see how everything is applied in the real world. We will work through examples and exercises based on real datasets.


All you'll need is a computer with a browser and a decent internet connection. We'll be using an online development environment. This means that you can focus on learning and not on solving technical problems.

Of course, we are happy to help you get your local environment set up too! You can start by following these instructions.


The training package includes access to
  • our online development environment and
  • detailed course material (slides and scripts).

Return to our list of courses.