
Learn Docker Fundamentals In 7 Lessons
About This Course
"Docker Fundamentals In 7 Lessons" is a multi-lesson course designed to teach you about Docker, containers, and the big picture of Docker development. The lessons are delivered to you via email weekly.
The course is a combination of context, history, and hands-on lessons designed to give you a full mental model of Docker containers.
Who Is This Course For?
You:
- Are a software industry professional.
- Are a Docker beginner or have intermediate knowledge.
- Have struggled to see the big picture of Docker and containers.
- Appreciate courses crafted with love and care.
The course content is tailored to engineers developing on Mac or Windows. Docker on Linux is a little more straightforward. You' get the most benefit from this course if you use Docker for Mac, or run Docker containers on Windows, and want a more fundamental understanding of how it all works.
Why 7 Lessons?
Long form web content can be challenging to follow and stick with. You might have lots of "to-read" brower tabs open that you haven't got around to reading.
Instead, this course is broken down into 7 easily digestible sections that are delivered to you weekly. At any time you can skip ahead to the next course. The slower and smaller cadence is to help you learn the content at a reliable pace.
Why Buy This Course?
I'm Andy Ray, a full stack engineer. When I come across a technical subject that is challening to learn, I break it down into approachable ideas to build a strong mental model. I've done that for Webpack, Flux, and React, and had positive feedback on all.
Docker and containers can be foreign concepts to full stack engineers. I've digested online tutorials into an approachable form. This course is what I wish someone had told me about Docker and containers, and I'm excited to share the journey with you!
Why Bother Learning Docker?
If you just want to build web servers, why care about Docker at all? Well, I've personally encountered many of the issues containers claim to solve:
- Requiring multiple versions of libraries (like Node, and also npm packages) in different repositories, causing conflicts for local development because they aren't isolated
- Requiring multiple service or database versions causing conflict in local development (have you ever tried to run two versions of MySQL on a Mac using Homebrew?)
- Running into dependency installation issues when checking out both old and new projects (Ruby / Rails are particularly bad at this, damn you Nokogiri). Who hasn't run an old project only to learn everything is broken?
- Needing to easily run multiple services for local development, some of which need multiple commands (such as both a server process and a static file builder process like Webpack)
- Losing parity between environments due to version or process execution discrepancies, making it impossible to reproduce situations that cause some production bugs
Course Preview
Each lesson answers a specific question about Docker containers. The question order is designed to build up your knowledge to more complex topics. These are the lessons and the questions you'll be able to confidentally answer at the end of the course:- What is "Docker"?
- What is a "container"? Did Docker invent containers?
- What does it mean to "run a container"?
- Are containers stateful? What does container state even mean?
- Do containers run only one process? Can they run multiple processes?
- What exactly is "Docker for Mac"? I thought Docker was cross platform?
- Does Docker work for Windows development?
- What are "docker-compose" and "BuildKit"? Why are there so many different applications?
- Most Docker images start with something like FROM ubuntu. Is my container running a full Ubuntu operating system? If not, why is it from Ubuntu? In fact, what does it even mean to "run an operating system?"
Ready to Dive In?
I'm excited to share what I've learned with you in an approachable, straightforward course.
Full refunds offered without question within 15 days of purchase.