Course Objectives

Discover the importance of Docker and the motivation behind the development of this course.

Preface

Technology evolves at a rapid pace, making it difficult to keep up. As engineers, we have no choice but to adapt to the times to remain marketable and employable.

Tech companies have a reputation for being quick to adopt the latest shiny, cutting-edge technology. It’s for this same reason that the front-end and back-end engineer roadmaps keep expanding every year.

Knowing how to use container technologies like Docker is another skill that can make a big difference, whether we’re back-end or front-end engineers.

This course isn’t an exhaustive A-to-Z guide on Docker. Rather, it aims to simplify working with Docker containers.

Who should take this course?

The course makes the following assumptions about its audience:

  • You’re a developer. You’ve built applications or are about to build a new application.
  • You’ve seen and experienced the pains of attempting to make a software run in various environments.
  • You’re already working with virtual machines, but you’ve learned about containers and are trying to figure out how they work.
  • You want to use Docker containers to allow rapid software development or to get your team to use them.
  • You’re looking to delve into the world of microservices and are looking for a good place to start.

An overview of what we’ll learn

Here’s brief overview of what we’ll learn in this course.

Get started with Docker

To understand the usefulness of a new tool, we first need to understand what the past looked like without it. There are many ways to build applications. We could develop with Notepad++ on a physical server and upload to a remote web server with an FTP client, or perhaps develop in a virtual machine.

Whichever way we approach building an application, the end goal is still the same. Why the craze about Docker containers, though? In this chapter, we learn about the problem container technology like Docker attempts to solve.

Moreover, we’ll also understand what exactly a container is. We’ll learn about containers, their benefits, and other container providers besides Docker.

Install Docker

This is where we start working with the code. You can skip this lesson if you already have your environment fully set up. Otherwise, this lesson will show how to set up Docker on Windows, macOS, or Linux systems.

Build and publish Docker images to Docker registries

We know about Docker containers, but how do we use them? How do we leverage Docker on our day-to-day development? This is precisely what this lesson is all about. We’ll learn to create Docker images from Dockerfiles, optimize Dockerfiles, and gain speed while developing and publishing Docker images people can reuse.

Containerize existing applications

Having learned how to create and publish Docker images in the previous lesson, we’ll apply that to Dockerize existing applications in multiple languages like Python and Node.js. Moreover, we’ll master tricks and tips to containerize any application irrespective of the its language and learn to compose multiple containerized applications.

Stay secure in Docker

We can’t talk about software without talking about security. Security is as important as building an application, and it must not be an afterthought. In this lesson, we learn security best practices to follow while working with Docker containers.

To sum it up, we’ll learn the following:

  • The problems a container technology like Docker solves.
  • A deep dive into containers.
  • How to set up Docker in a local environment.
  • How to build Docker images.
  • How to optimize Dockerfiles.
  • How to publish Docker images.
  • How to containerize existing applications.
  • The best practices for working with Docker.
  • Security best practices while working with Docker.

Objective summary

Docker isn’t just another developer tool. It’s a game-changer that’ll transform our development process. Whether we’re a developer, data scientist, or machine learning engineer, Docker simplifies the development and delivery of software. Docker takes software delivery to another level by helping us build applications and ship them into containers that run everywhere. This course is the best way to get started with Docker.