Skip to content

Introduction

Unlike Python and Git, Docker isn't necessarily required that you know how to "program" in it (AKA, write .dockerfiles), more so that you know what it is, and how to use it to its fullest potential.

A quick and dirty explanation of what docker is in a practical sense is a method of virtualizing and containerizing our various software products.


What is virtualization?

Virtualization is a method of taking one computer and splitting it into many smaller computers. Of course these smaller computers all have to share the same resources that the original computer had, so it may be best to think about it as if the original computer was a pie, and each of the virtual computers is a slice of that pie. Essentially we take one much more powerful computer, and split it into little chunks that allow us to run one of our software products on an individual slice of that virtual pie. Overall though, I suggest you read about how virtualization works and why its beneficial in this article from IBM.

What is containerization?

In essence containerization is the ability for an application to be condensed into a single "executable." What this means in regard to Docker is that when you are creating an application for a Docker environment, you are effectively taking your entire codebase and condensing it into a single "file," of which in this case is called a Docker Container. For a more in depth exploration of what containerization is, please check out this article from IBM.


Where do I begin?

Many people come to DFR, and the workplace, having never used or even heard about Docker, so don't think you're alone. Docker is a very unique concept for most, and the goal of the below resources is to help guide you into learning at the very least how to utilize Docker in your workflow. Then come time to deploy any applications that you might make while you are at DFR, you will know how to build your application for the Docker environment.

Text resources

Notice

Out of both of these resources, the Docker 101 tutorial is easily the most important / useful. When learning Docker for the first time it is highly recommended that you cross reference the tutorial at least once.

Name Description URL
Docker 101 Tutorial A "self paced, hands-on tutorial" straight from the horse's mouth. This "short" tutorial will educate you on how to understand the concepts of the Docker environment, while also giving you practical knowledge on how to use the Docker environment locally. docker.com/101-tutorial
awesome-docker Like awesome-python, this is a repo designed to educate you through all the in's and out's of Docker on a beginner to advanced level, and can be utilized by anyone regardless of their experience with Docker. github.com/veggiemonk/awesome-docker

Video resources

Docker in 100 Seconds - Fireship


100+ Docker Concepts you Need to Know - Fireship