Docker Foundation

Since being introduced in 2013 Docker has taken the world by storm. Allowing developers to run their code in isolation, without the overhead of a virtual machine, Docker is supported and used by companies around the globe. Isolating apps in containers helps to streamline collaboration as well as allowing developers to test and debug in environments identical to the deployment setup.

In this course we will look at how Docker is built, what that means for us, and how to use it effectively. After our introduction to Docker we’ll dig into how to leverage premade Docker containers, how to publish our own and the security implications of both. The course focuses on how to use Docker in production, as well as how to develop, test, and troubleshoot in Docker.

We'll look at how to use Docker Compose for development and the limitations of using it in production. We will finish up by looking at what next steps there are once we have our apps containerized.

This course is built from our experience providing development and consulting services to a variety of clients using Docker and as such is intended to help you avoid many of the pitfalls common to folks who are new to Docker.


This course is intended for experienced developers who want to look at the real world implications of containerizing their applications.  

This course is designed to get you productive with Docker quickly with a solid understanding of the benefits and challenges of using containerization effectively.


Many of the examples and exercises in the course are built with Node.js and Express so it's helpful, but not required, for participants to have a basic understanding of both.  

Participants are also expected to be proficient with basic Linux command line tools.

Stephen Lau

Stephen has worked developing sections of the QNX core OS as well as developing drivers in C for use in mobile devices. Also, he has setup a build and integration server for testing of drivers. At Blackberry he worked as a team lead for several concept and demo projects related to mobile UX. He has also successfully lead a creative team to develop a sign language translation concept project, resulting in an international award.

Stephen has experience developing at different layers of the software stack, from low level drivers designed and developed in C to apps written in C++ and Java.  With previous experience in firmware and driver development, rendering engine development, automated testing, and concept development Stephen is comfortable working with both large and small projects.

With a good eye for detail, Stephen has worked closely with both engineering and design teams to implement BlackBerry's rendering engine as well as many projects related to mobile UX.

Stephen has received several provincial and national medals for his work in electronics and robotics, as well as an international developer award for his work on an American Sign Language translation project.

Key skills: C, C++, JavaScript, ReactJS, NodeJS, QNX RTOS, Docker, Microservices

Course content:

What you will learn

  • Introduction to containerization
  • Introduction to Docker
  • Basic operations
  • Dealing with networks
  • Docker volumes
  • Containerizing our application
  • Using Existing containers
  • Using Docker Compose
  • Publishing our containers
  • Docker in Docker and alternatives
  • Continuous Integration and Docker

Other relevant courses

19. March
4 days
27. May
3 days
12. June
3 days