Skip to content
APEX FLOWACADEMY
MENU
Technology / beginner

Docker and Kubernetes for Beginners

Package a small web app in a container, then run and update three copies of it on a Kubernetes cluster on your own computer.

24 lessons6 modulesabout 5 hours10 workbook itemsbeginner
READ LESSON 1 FREE

One payment of $39. Instant online access to the full written course. No subscription. Refund policy.

What you will be able to do

You will be able to run ready-made containers, package your own app into an image, and run it on a local Kubernetes cluster with three copies, a stable address, outside settings, health checks, a safe update and a rollback. You finish with a project folder that another person can rebuild from your README.

Who it is for. Beginners who are comfortable typing basic commands in a terminal: developers in training, IT support and operations staff, career changers, students and makers who keep hearing about containers and Kubernetes and want to understand them properly.

You finish with. apex-hello on a Local Kubernetes Cluster. You deliver one project folder that holds a small web app, the Dockerfile that packages it, and the Kubernetes files that run three copies of it on a local minikube cluster. A README lists the exact commands, and an evidence file holds the real output of your own runs. The test is a fresh start: after you delete the cluster, someone can follow only your README and get the app running again. This is practice work on a local cluster, and you should say so plainly if you show it to anyone.

Certificate. Finish every lesson, resolve every quiz question with at least 50% right on the first try, and tick the capstone checklist — Apex Flow Academy issues a verifiable Certificate of Completion with a unique ID and a public verification page. It is a certificate of completion, not a degree, licence, accreditation or exam result.

The path, module by module24 lessons
01 · Meet Containers4 lessons

Learn what a container is, install a free container engine, run your first containers, and understand images, tags and registries. You also set up the project folder you will build on for the whole course.

  1. 1.1What a Container Is and What You Will BuildFREE
  2. 1.2Install a Free Container Engine
  3. 1.3Run Your First Containers
  4. 1.4Images, Tags and Registries
02 · Run and Manage Containers4 lessons

Keep containers running in the background, open their ports, look inside them, give them settings, and keep their data. By the end you run the apex-hello app in a container without building anything.

  1. 2.1Run a Web Server in the Background
  2. 2.2Look Inside a Running Container
  3. 2.3Give Containers Settings With Environment Variables
  4. 2.4Keep Data With Volumes and Bind Mounts
03 · Build Your Own Image4 lessons

Turn apex-hello into your own image with a Dockerfile. Learn how layers and the build cache speed up builds, what to keep out of an image, and how to make the container run as a safe user and stop cleanly.

  1. 3.1Your First Dockerfile
  2. 3.2Layers and the Build Cache
  3. 3.3What Goes In the Image: Context and .dockerignore
  4. 3.4Run Safely and Stop Cleanly
04 · Kubernetes: Your First Cluster and Pod4 lessons

Understand what Kubernetes does, start a free local cluster, read and write your first YAML manifest, and run your own apex-hello image in a Pod.

  1. 4.1What Kubernetes Does
  2. 4.2Start a Free Local Cluster
  3. 4.3Your First Pod From a YAML File
  4. 4.4Run Your Own Image in the Cluster
05 · Deployments, Services and Scaling4 lessons

Replace the lone Pod with a Deployment that keeps three copies alive, give them one stable address with a Service, scale them, size them, and feed them settings from a ConfigMap and a Secret.

  1. 5.1Deployments: Keep Copies Running
  2. 5.2Services: One Stable Address
  3. 5.3Scale Up: Copies Times Size
  4. 5.4Settings From a ConfigMap and a Secret
06 · Health, Updates, Debugging and the Capstone4 lessons

Teach Kubernetes how to tell when your app is healthy, ship a new version without downtime and roll it back, learn a repeatable way to debug, then prove the whole project works from a clean start.

  1. 6.1Health Checks: Readiness and Liveness
  2. 6.2Rolling Updates and Rollbacks
  3. 6.3A Debugging Routine You Can Repeat
  4. 6.4Assemble, Prove and Clean Up
Free preview · lesson 1.1No sign-up
Free lesson · 1.1

What a Container Is and What You Will Build

About 6 minStep 1 of 7 · You will be able toNo sign-up
Step 1 of 71 min read

You will be able to

  • Explain in one sentence what a container is.
  • Say why teams use containers.
  • Describe the app you will ship in this course.
Step 2 of 71 min read

Why this matters

Almost every software team uses containers. Job posts ask for them by name. You will type many commands in this course, and each one is easier to remember when you know the idea underneath.

Step 3 of 72 min read

Learn it

An app needs more than its own code. It needs a language runtime, extra libraries, settings and files in the right places. Change any one of these and the app can break. This is where the old complaint 'it works on my machine' comes from.

A container is a box that holds an app and everything the app needs to run. The box runs as an ordinary process on your computer. Inside it, the app sees only its own files, its own network and its own list of processes. That separation is called isolation.

Think of a shipping container. The crane does not care what is inside. The box has a standard shape, so it moves from ship to truck to train without changes. A software container works the same way. It runs the same on your laptop, on a teammate's laptop and on a server.

You may have heard of virtual machines. A virtual machine (VM) pretends to be a whole computer with its own operating system. A container does not. Containers share the core of the host's operating system, called the kernel. So they start in seconds and use less memory. The price is that they are isolated less strongly than a VM.

Most containers you will meet are Linux containers. On Windows and Mac, the tools quietly start a small Linux helper machine to run them. You do not need to manage it.

Two names matter in this course:

  • Docker is the most popular tool for building and running containers.
  • Kubernetes runs many containers on one or more computers and keeps them healthy.

We start with Docker, because Kubernetes runs containers. It is hard to manage what you do not understand.

How the course works. Every lesson has the same six parts. Type the commands yourself. Where we show output, yours will differ in ids, times and sizes. That is normal. Look for the shape, not the exact characters.

What you will build. A tiny web app called apex-hello. When you open it, it prints a greeting, the name of the machine it runs on, a visit count and a version number. You will:

  1. Run ready-made containers (Modules 1 and 2).
  2. Package apex-hello into your own image (Module 3).
  3. Run three copies of it on a Kubernetes cluster on your own computer (Modules 4 to 6).
Step 4 of 71 min read

See it in action

Example (illustrative): Ana writes a small app that needs Python 3.13. Ben's laptop has Python 3.8.

Without a container:

  1. Ana sends Ben the code and a note that says 'install Python 3.13'.
  2. Ben installs it. Now his other project stops working.
  3. Ben installs a library. It is the wrong version. He loses an hour.

With a container:

  1. Ana packs the app, Python 3.13 and the libraries into one package.
  2. Ana sends Ben the name of the package.
  3. Ben runs one command. The app starts, and it behaves the way it did for Ana.

Ben never installed Python 3.13. He did not touch his other project. Everything the app needed travelled inside the box. That is the whole idea. The rest of this course is about how to build the box, run it, and run many of them.

Step 5 of 71 min read

Common mistakes

  • Thinking a container is a small virtual machine. Why: both feel like 'another computer'. Fix: remember that a container is one isolated process that shares the host's kernel.
  • Thinking Docker and Kubernetes compete. Why: both appear in the same job posts. Fix: Docker builds and runs containers. Kubernetes manages many of them.
  • Skipping the typing. Why: the commands look easy. Fix: type each one. Your hands remember what your eyes skip.
Step 6 of 71 min read

You are done when

You can say out loud, without looking, what a container is: a box that holds an app and what it needs. Then add how it runs, as an isolated process. You can also name the four things the apex-hello page shows: a greeting, a machine name, a visit count and a version.

Step 7 of 7

You finished the free lesson

That is one lesson from the course. The full course gives you every remaining lesson, a quick check and a hands-on task in each one, and the workbook of templates and checklists.

Full course$39

What you need
  • A 64-bit computer running Windows 10 or 11, macOS or Linux, with about 20 GB of free disk space. Docker lists 8 GB of memory for Docker Desktop on Windows, and minikube needs at least 2 GB free, so 8 GB or more is a comfortable target.
  • Hardware virtualization turned on in your computer's settings, if your system needs it (many Windows PCs ship with it off).
  • A container engine. Free options: Docker Engine on Linux (open source), Docker Desktop on Windows and Mac (free for personal use, education, non-commercial open source and small businesses; larger companies need a paid plan), or Rancher Desktop on any system (open source). Check the current terms before you rely on any of them.
  • minikube and kubectl. Both are free and open source.
  • A plain text editor (any free editor works) and a web browser.
  • An internet connection to download images. Docker Hub limits how often anonymous users can pull images, so a free Docker account can help, but it is not required.
  • Nothing in this course needs a paid subscription. If your employer is a large company, ask which container tool is approved, or use the open-source route.
Before you start
  • You can open a terminal (PowerShell, Command Prompt, Terminal or a Linux shell) and run simple commands such as cd and ls or dir.
  • You can create and edit plain text files.
  • You know what a web page and a URL are.
  • No programming is needed. The small app is given to you, and you only read a little of it.
The capstone

apex-hello on a Local Kubernetes Cluster

You deliver one project folder that holds a small web app, the Dockerfile that packages it, and the Kubernetes files that run three copies of it on a local minikube cluster. A README lists the exact commands, and an evidence file holds the real output of your own runs. The test is a fresh start: after you delete the cluster, someone can follow only your README and get the app running again. This is practice work on a local cluster, and you should say so plainly if you show it to anyone.

  • app.py, requirements.txt, Dockerfile and .dockerignore, with an image built as apex-hello:1.0 that runs as a non-root user and uses the exec form of CMD.
  • k8s/configmap.yaml, k8s/deployment.yaml and k8s/service.yaml: three replicas, matching selector and labels, resource requests and limits, a readiness probe and a liveness probe, and settings from a ConfigMap and a Secret.
  • k8s/examples with your practice files, kept out of the folder that kubectl apply reads.
  • README.md with the exact commands to start the cluster, build, load the image, create the Secret, apply, wait, test, update, roll back and clean up.
  • EVIDENCE.md with pasted output: 3/3 ready, three Running Pods, three Service endpoints, a six-request test that shows at least two Pod names, a rollout to 1.1 and a rollback to 1.0, and a short reflection on three mistakes and their fixes.
  • FIELD-NOTES.md with your notes from all six modules.
Key terms taught28
Container
A box that holds an app and everything it needs to run. It runs as an isolated process on your computer.
Image
A read-only package that holds the files and settings needed to start a container. One image can start many containers.
Registry
An online library of images. Docker Hub is the default one.
Tag
The label after the colon in an image name, such as 3.13-slim. It names a version.
Engine
The background program that actually runs containers. The docker command talks to it.
Port
A numbered door on a computer. Programs listen on ports, and -p opens a door from your computer into a container.
Volume
Storage that Docker manages and keeps after a container is removed. Good for data.
Bind mount
A link that shows a folder from your computer inside a container. Good for code you are editing.
Environment variable
A named setting, like GREETING=Howdy, that a program reads when it starts.
Dockerfile
A text file of instructions, one per line, that tells Docker how to build an image.
Layer
One saved step of an image build. An image is a stack of layers, and Docker reuses layers that did not change.
Build context
The folder of files that a docker build is allowed to copy from.

Browse the full Academy encyclopedia

How this course was checked

16 checks were run and recorded while writing this course (code, formulas, commands and facts), and it lists 58 official sources it was checked against. Prices, features and policies of outside tools can change, so check each tool's own website.

Created by Apex Flow Academy with AI assistance. For education only; not legal, tax, financial or medical advice. Results depend on your effort and circumstances.