DEV105 · Containers with Docker
About Course
Package applications into portable, secure containers with Docker and run multi-service stacks with Docker Compose. You will containerize a Node.js API and its PostgreSQL database with small, non-root, scanned images.
Who it is for
Developers and operations staff who want applications to run the same way on every laptop, server and pipeline.
Prerequisites
Complete DEV102 and DEV104, or be comfortable with the Linux command line and a basic CI workflow.
What you will be able to do
- Explain images, containers, layers, registries and how containers differ from virtual machines.
- Write efficient, secure Dockerfiles using multi-stage builds, layer caching and a non-root user.
- Run multi-container applications with Docker Compose, including networks, volumes, environment variables and health checks.
- Scan images for vulnerabilities and build and publish images from a CI pipeline.
Lessons
- Lesson 1 · Containers, images and the Docker workflow
- Lesson 2 · Writing efficient and secure Dockerfiles
- Lesson 3 · Multi-container apps with Docker Compose
- Lesson 4 · Lab and assignment
Lab: Containerize an API and its database
You will write a multi-stage Dockerfile for a small Node.js API, measure the image size before and after optimization and run it as a non-root user. You will then create a Compose file with the API, PostgreSQL and a named volume, add health checks, scan the image and build it automatically in GitHub Actions.
Free tools: Docker Desktop (free for personal, education and small-business use) or Docker Engine on Linux, Docker Compose, Trivy (free) or Docker Scout's free tier, VS Code with the Docker extension, GitHub Actions and GitHub Container Registry
Assessed assignment
Containerize a small business application, such as an appointment API for a physiotherapy clinic or the inventory app of a hardware store, together with its database. Deliver a multi-stage Dockerfile, a .dockerignore, a compose.yaml with at least two services, a named volume, health checks and configuration from environment variables, plus a CI workflow that builds, scans and pushes the image to a registry. Include a README with the image size before and after optimization, the scan summary with how you handled any high or critical findings, and the commands to start, stop and back up the data.
| Criterion | Weight | What excellent work looks like |
|---|---|---|
| Dockerfile quality | 30% | Multi-stage, small base image, cache-friendly ordering, non-root user and no secrets in layers. |
| Compose setup | 25% | Services start in the right order with health checks, data persists in a volume and configuration comes from the environment. |
| Security and scanning | 25% | The image is scanned, serious findings are fixed or explained, and the CI workflow pushes only after a successful scan. |
| Documentation | 20% | The README lets someone run, stop and back up the stack and shows measured size improvements. |
Portfolio piece
A production-style container setup for an API and database, with optimized images, Compose file and CI build.
Next step
Continue with DEV106 · Container Orchestration with Kubernetes · 8 hours · $56.00
Course Content
DEV105 · Containers with Docker (8 h)
-
Lesson 1 · Containers, images and the Docker workflow
-
Lesson 2 · Writing efficient and secure Dockerfiles
-
Lesson 3 · Multi-container apps with Docker Compose
-
Lesson 4 · Lab and assignment
-
DEV105 Assessment · Containers with Docker
