Docker for Beginners: Understanding Containers in 5 Minutes
A plain-English explanation of what Docker containers are, why they matter, and how they make self-hosting possible.
What Is Docker?
Docker is a tool that packages software into standardized units called containers. Think of a container as a lightweight, portable box that includes everything an application needs to run — code, runtime, libraries, and settings.
The Shipping Container Analogy
Before shipping containers, loading a cargo ship was chaos. Different goods needed different handling. Shipping containers standardized everything — any container fits on any ship, truck, or train.
Docker does the same for software. Any Docker container runs on any server with Docker installed. It doesn't matter if the developer wrote it on a Mac and you're running it on Linux.
Containers vs Virtual Machines
Virtual machines emulate an entire computer, including the operating system. They're heavy — a VM might use 2GB of RAM just for the OS before your app even starts.
Containers share the host's operating system kernel. They only include the application and its dependencies. A container that runs a web app might use 50MB of RAM.
This means you can run dozens of containers on a single server, compared to maybe 3-4 VMs.
Why Docker Matters for Self-Hosting
Consistency
"It works on my machine" is dead. If an app runs in a Docker container, it runs the same way everywhere.
Isolation
Each container is isolated from the others. A buggy app in one container can't crash another. You can run different versions of the same software side by side.
Easy Deployment
Installing software used to mean following 50-step tutorials, resolving dependency conflicts, and hoping nothing breaks. With Docker, it's one command: docker run.
Easy Updates
Updating is just pulling a new container image and restarting. No more manual package upgrades or configuration drift.
Docker Terminology
You Don't Need to Learn Docker
Platforms like TinyPod abstract Docker away entirely. You pick an app, click deploy, and we handle the containers, networking, SSL, and storage. But understanding what's happening under the hood helps you make better decisions about your infrastructure.