Docker Foundations
Learn containers from nothing at all. Every command arrives as the answer to a problem you can feel — from your first docker run to an image you built, configured, debugged and published yourself. No container experience assumed.
Start courseWhat you will cover
- Why Containers ExistThe problem containers solve, told through the machine that worked and the one that did not: what a container actually is, how it differs from a virtual machine, and why the answer is a shipping metaphor.20 min
- Installing Docker and Running Your First ContainerGet Docker onto macOS, Windows or Linux, prove it works, and run something real in one command — then look at what actually happened underneath.25 min
- Images, Containers and the DifferenceAn image is a recipe and a container is the meal. Why that distinction explains almost every confusing thing Docker does, plus the commands to inspect both.25 min
- Writing Your First DockerfileBuild your own image from a text file: FROM, WORKDIR, COPY, RUN and CMD, each introduced by the problem it solves, ending with an application you built and ran yourself.30 min
- Layers, Caching and Build ContextWhy your second build is instant and your third is not. How layers are cached, why instruction order decides your build time, and what .dockerignore is really for.30 min
- Keeping Data With VolumesContainers forget everything when they stop. Bind mounts, named volumes and tmpfs — which one to reach for, and the mistake that silently loses a database.30 min
- Networking and Publishing PortsWhy localhost inside a container is not your localhost. Publishing ports, user-defined networks, and how one container finds another by name.30 min
- Configuration and Environment VariablesOne image, many environments. Passing configuration in at run time with environment variables and env files, and why a secret baked into an image is a secret you have leaked.25 min
- Running a Multi-Container App With ComposeA web app, a database and a cache started with one command. Writing compose.yaml, service dependencies, and the difference between up, down and down --volumes.35 min
- Debugging a Container That Will Not StartA method for the five failures you will actually hit: exited immediately, port already allocated, image not found, permission denied, and the container that runs but answers nothing.30 min
- Smaller, Safer ImagesMulti-stage builds, choosing a base image, dropping root and pinning versions — the four changes that turn a 1.2 GB image with a shell in it into something you would ship.30 min
- Publishing an Image to a RegistryTagging, logging in and pushing to Docker Hub or GitHub Container Registry, plus what a tag really is and why :latest is the one you should not depend on.25 min
- Your First Containerised AppThe capstone: take a small application from bare source to a built, configured, published image running behind Compose with persistent data — every step from the earlier lessons in one pass.35 min