Solidify your understanding of packaging with Docker

If you don’t understand how Docker packaging works, you’re going to have a hard time packaging your Python application:

  • Your Docker build just failed—now what?
  • How do you debug a docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"flask\": executable file not found in $PATH": unknown.?
  • How can you speed up docker build and keep it from re-running pip install, downloading and re-installing every single package every single time?
  • Why are you getting connection reset—or connection refused—when you try to point your browser at your Dockerized application?

Reverse-engineering a complex application like Docker from introductory tutorials, terse StackOverflow answers, and random Google results is possible. But it will take you days to find and learn what you need.

And you already have enough to do working on the code you’re trying to package; you don’t have the spare time to learn tools the hard way.

You need to learn Docker packaging quickly and effectively.

How do you learn quickly?

When it comes to learning a new tool, there are three increasing levels of understanding:

  1. You know of the tool’s existence, allowing you to learn more if and when you need to use it.
  2. You can use the tool. You don’t know everything, but you can mostly get your job done.
  3. You have expertise. You know all the edge cases, bugs, obscure features, and more.

The more you want to learn, the more effort and time you’ll need to invest.

Much of the time, you only need to know how to use the tool; expertise is overkill for tools you only use occasionally. And if you’re not aiming for expertise, you can learn much more quickly by skipping unnecessary details.

How do you learn effectively?

What do you need to learn to actually use a tool? You don’t have to memorize every single command, or every single option; that’s what the documentation and --help are for.

But what you do need to understand is the basic conceptual model of how it works, the basic abstractions and mechanisms that make it go. Whether it’s debugging a problem or looking up a feature in the documentation, you need a good mental model to guide your steps.

Which brings us to Docker—

Just enough to get you up and running quickly

To help you get up to speed quickly, and build that intuitive mental model, I’ve written a concise, developer-focused book: Just Enough Docker Packaging.

This book will show you how Docker packaging actually works, with simple shell transcripts, plenty of examples, conceptual diagrams, and even some exercises to help you practice what you’ve learned. Occasionally I’ll even make a mistake, so you can see me recover from it.

You’ll learn just enough of the fundamental concepts to get up and running quickly, including:

  • The Dockerfile format.
  • The Docker image format.
  • The semantics of naming and tagging images.
  • The Docker build process that ties these all together.

And since that’s a lot to cover, and you want to get going as quickly as possible, the book won’t teach you every little detail. Which means you can get through it in an afternoon at work.

Just Enough Docker Packaging assumes:

  1. You’re running on a Mac or Linux.
  2. You have some familiarity with command-line tools and the Unix shells.
  3. You’re packaging a Python application.
  4. Minimal to zero previous knowledge of Docker.

If that describes you—or your teammates—then this book is for you.

Ready to learn Docker packaging, quickly and effectively?

Just Enough Docker Packaging Team edition (10 people)
  • Concise, focused PDF book.
  • Exercises to solidify your understanding.
  • All updates to the 1st edition.
  • 100% money-back guarantee.
  • Help your whole team get up to speed on Docker packaging.
  • Licensed for up to 10 people.
  • 100% money-back guarantee.

Be the first to know when the book is released!

Just Enough Docker Packaging is almost ready to be shipped—and if you sign up you’ll be the first to know when it’s released.

Plus, you’ll get weekly articles about Docker packaging, Python performance, and other practical tools and techniques to help you keep your skills sharp.

What’s in the book

Chapter by chapter, Just Enough Docker Packaging covers:

  1. Images and containers: what they are and how to use them.
  2. Minimal packaging: your first Docker image for a simple Python application, and the basics of Dockerfile commands.
  3. Docker networking and its impact on packaging: configuring servers, and finding addresses as client software via environment variables and well-known hostnames.
  4. Configuring your application for Docker packaging: persistent data, logging, volumes, command-line parsing.
  5. Sharing images: pulling and pushing, image registries, and understanding image naming.
  6. Smaller and faster builds: build caching, image as layers, skipping files with .dockerignore.
  7. Debugging your build: how to debug failing builds, and containers that won’t start.
  8. Next steps: what to learn next.

The best way to learn from the book is to type along as you read the book, running the same commands on your computer. And Chapters 2 to 7 each have an exercise to help you practice what you’ve learned.

Ready to learn Docker packaging, quickly and effectively?

Just Enough Docker Packaging Team edition (10 people)
  • Concise, focused PDF book.
  • Exercises to solidify your understanding.
  • All updates to the 1st edition.
  • 100% money-back guarantee.
  • Help your whole team get up to speed on Docker packaging.
  • Licensed for up to 10 people.
  • 100% money-back guarantee.

Be the first to know when the book is released!

Just Enough Docker Packaging is almost ready to be shipped—and if you sign up you’ll be the first to know when it’s released.

Plus, you’ll get weekly articles about Docker packaging, Python performance, and other practical tools and techniques to help you keep your skills sharp.