RadarTrek
Home/Courses/Docker & DevOps
Intermediate9 lessons · 3 free

Docker & DevOps for Builders

Deploying by hand — FTPing files, SSHing into servers, running commands in production — is the single biggest time sink for independent builders. Docker eliminates environment drift. GitHub Actions eliminates manual deploys. This course teaches you containers, Compose, CI/CD pipelines, and production-ready deployment on Fly.io and Railway — so your code ships the same way, every time, automatically.

Start free lessons (3 free)
$69one-time · full course

What you will learn

What Docker is and why it solves the "works on my machine" problem
Build and run your first container from a Dockerfile
Docker Compose for local multi-service development
Environment variables and secrets management
Volumes, persistent data, and stateful containers
CI/CD pipelines with GitHub Actions
Deploy containerised apps to Fly.io or Railway
Production monitoring, structured logging, and health checks

Course outline

Full course — $69 one-time

04

Docker Compose for Local Development

Define your entire local stack — app, database, Redis, email — in one file and start it with one command

9 min
05

Environment Variables and Secrets

Keep secrets out of your images, out of your repository, and properly scoped across environments

8 min
06

Volumes and Data Persistence

Understand how Docker handles data — and ensure your database survives a container restart

7 min
07

CI/CD with GitHub Actions

Automate testing, building, and deploying on every push — so you never deploy broken code

11 min
08

Deploying to Fly.io or Railway

Ship your containerised app to production in under 10 minutes — with a real domain and SSL

9 min
09

Production Monitoring and Logs

Know when your app breaks before your users tell you — with structured logs, error tracking, and uptime alerts

8 min

Get the full course

All 9 lessons — from your first container to production deployment. Lifetime access.

9 lessons✓ Real Docker + CI/CD workflows✓ Certificate included✓ Lifetime access
$69one-time

Written by the RadarTrek editorial team · Reviewed June 2026

About this course

Docker and containerisation have become foundational to modern software deployment — containers package applications with all their dependencies, eliminating "it works on my machine" problems and enabling consistent environments from local development to production. Learning Docker means understanding images, containers, Dockerfiles, Docker Compose for local multi-service development, and the basics of running containers in production. This Docker tutorial for developers takes you from first container to a production-ready deployment workflow.

DevOps skills make developers significantly more effective and self-sufficient — you can deploy your own applications, debug infrastructure problems, and understand what happens between `git push` and users experiencing your code. After this course you will be able to write a Dockerfile for any Node.js or Python application, orchestrate multi-service local environments with Docker Compose, push images to a container registry, and deploy containerised applications to cloud providers.

Frequently asked questions

What is the difference between a Docker image and a container?

A Docker image is a static, immutable blueprint — it contains the application code, dependencies, runtime, and configuration files packaged together. A container is a running instance of an image — a live process executing the application in an isolated environment. You build images with `docker build`, store them in a registry, and run them with `docker run`. Multiple containers can run from the same image simultaneously.

What is a Dockerfile?

A Dockerfile is a text file with instructions for building a Docker image. Each instruction creates a layer: FROM specifies the base image (node:20-alpine, python:3.11-slim), COPY or ADD copies files into the image, RUN executes commands during the build (npm install, pip install), and CMD or ENTRYPOINT specifies what command runs when the container starts. Well-written Dockerfiles use layer caching to minimise build times.

What is Docker Compose and when do I use it?

Docker Compose defines and runs multi-container applications using a YAML file. Instead of running multiple `docker run` commands with complex networking configuration, a `docker-compose.yml` file defines all services (your application, a database, a Redis cache) with their configuration, environment variables, and how they connect. Run `docker compose up` to start the entire stack, `docker compose down` to stop it.

How do I make a Docker container smaller?

Smaller images build faster, deploy faster, and have a smaller attack surface. Techniques: use Alpine-based base images (node:20-alpine is much smaller than node:20), use multi-stage builds (build in one stage, copy only the artefact to a smaller runtime image), use `.dockerignore` to exclude node_modules, test files, and documentation from the build context, and minimise the number of RUN layers that install development dependencies.

How do I handle environment variables in Docker?

Environment variables are passed to containers in several ways: via `-e KEY=VALUE` in `docker run`, via an `env_file` option in Docker Compose pointing to a `.env` file, or via your deployment platform's secrets manager (injected as environment variables at runtime). Never bake secrets into a Docker image — anyone with access to the image can extract them. Production containers should receive all secrets at runtime from a secrets management system.

RadarTrek Intel — monthly score updates

We track 40+ tools so you don't have to. Score changes, new tools, and new guides — once a month, no spam.