Level 6 · Cloud Computing, DevOps and Cybersecurity · Course 6.2 Cloud and Hosting
Module 69: Docker
Goal: package your application into containers that run the same way everywhere, write good Dockerfiles, keep data safe with volumes, connect containers on networks, and run the whole CRM with Docker Compose.
You'll need: Docker Desktop (Windows, Mac) or Docker Engine (Linux, including your lab), and your Level 5 CRM.
Lessons
- 1Containers and virtual machines15–25 minutes✓
- 2Images and Dockerfiles15–25 minutes✓
- 3Volumes and data15–25 minutes✓
- 4Networking15–25 minutes✓
- 5Docker Compose15–25 minutes✓
🛠️Module practice: Project B, part 3, a containerised CRM
- A multi-stage Dockerfile for the API (slim, non-root, no secrets, with
.dockerignore), and one for the frontend. compose.yamlwith database (volume, health check), API and an Nginx front, only the front published.- Secrets passed at run time from ignored files;
.examplefiles committed. - A tested database backup from the running container.
- Notes in your README: build, run, back up. Commit.
✅Module check
Explain in a few sentences, in your own words:
What are containers, and how do you containerise an application well?
Show a good answer
A good answer mentions: a container packages an app and its dependencies to run identically anywhere, sharing the host's
kernel (lighter than a VM); images are built from Dockerfiles and run as containers. Good practice: official slim base
images with pinned versions, multi-stage builds, dependency layers cached, a non-root user, .dockerignore, and no secrets
in images. Data that must survive lives in volumes (or better, managed services) and is backed up with proper tools;
containers talk by name on internal networks with only the front door published (bound carefully so the firewall isn't
bypassed); Compose describes the whole set with health checks, restarts and run-time secrets.
📝Module quiz
10 questions · 10 marks each · 100 marks in all · pass mark 70% · retry as often as you like ·
