Updated: September 1, 2023
By Bret Fisher
Highly practical and comprehensive resource for learning Docker foundations.
The course covers a broad spectrum of Docker topics, ranging from foundational concepts to advanced use cases. It immerses learners in Docker's world, providing them with a solid understanding of containers and Docker's ecosystem.
One of the course's standout features is assignments. At the end of each module, the assignment asks you to apply your skills in a real-world scenario. After completing the assignment, you’ll be able to watch a solution video to see step by step how the author would do the assignment.
This course also goes deep into how to automate Docker and Kubernetes with GitHub Actions to create a Continuous Integration pipeline.
The course also includes valuable resources such as downloadable Docker Compose files, Docker cheat sheets, and access to a dedicated community. These resources enhance the learning experience and provide ongoing support for learners.
The second half of the course consists of supplementary resources, including conference talks and Q&As. If you're just looking to get up and running with using Docker professionally, you may not get a lot of value from these sections.
Rather than create a wholesale new version of the course, the instructor has updated the course many times since its release. Some users complained that a few sections are still a bit outdated, and that the course quality is a bit inconsistent between old sections and updated sections. It should be noted the course has received updates in most areas.
Docker is a platform that simplifies the process of developing, deploying, and running applications. It uses containerization technology to package an application and its dependencies into a standardized unit called a container. These containers can run consistently across different environments, making it easier for developers to build, test, and deploy applications, while also enhancing scalability and resource efficiency.
Docker is among the most popular developer tools according to Stack Overflow's 2023 Developer Survey, so it's an essential skill to learn and will greatly enhance your ability to work on modern large-scale applications.
To get started with Docker professionally, focus on these foundational topics:
These foundational topics will give you a strong start in working with Docker. As you gain experience and progress in your career, you can then delve into more advanced topics such as container orchestration (Kubernetes), monitoring, and advanced security configurations. These advanced topics are typically necessary when working on larger-scale and production-grade applications. Start with the basics, build your skills, and expand your Docker knowledge as needed for your specific projects and roles.
Docker is a fairly accessible technology even for beginners.
Besides those topics, having some basic knowledge of the following concepts can be helpful, but again aren't required:
Linux Basics: Docker relies on Linux containers, so having a basic understanding of Linux commands, file systems, and permissions is advantageous.
Command Line Interface (CLI): Familiarity with the command line interface (CLI) is important, as you'll be using Docker commands to create and manage containers.
Networking: Basic knowledge of networking concepts, such as IP addresses and ports, can be beneficial when working with Docker's networking features.
Version Control: Familiarity with version control systems like Git is helpful for managing Docker configurations and images.
Containers and Virtualization Concepts: Having a high-level understanding of containerization and virtualization concepts can aid in grasping Docker's purpose and benefits. Most tutorials will cover this at a high level when introducing Docker.
Thanks for reading!