Docker Course

Docker for Java developers: images and Dockerfiles, networking, volumes, Docker Compose and production-ready Spring Boot containers.

9 lessons in 2 categories

Docker Fundamentals

What Is Docker?

What Docker is, how containers differ from virtual machines, the difference between an image and a container, the Docker Engine, and Docker Hub. The 1st lesson in both the Docker course and its Docker Fundamentals category.

Beginner 15 min
Explore →

Docker CLI Fundamentals

docker pull, docker images, docker run, docker ps, docker logs, docker exec, docker stop/start, and docker rm -- walked through via the full lifecycle of a PostgreSQL container, with real examples.

Beginner 25 min
Explore →

Docker Images and Dockerfiles

What a Dockerfile is, the FROM, WORKDIR, COPY, RUN, EXPOSE instructions, the difference between CMD and ENTRYPOINT, and building an image with docker build -- via a generic, minimal web server example.

Beginner 30 min
Explore →

Dockerizing a Spring Boot Application

Choosing a JRE vs JDK base image for a Spring Boot JAR, .dockerignore, multi-stage builds, and container-aware JVM memory sizing -- via this project's own real learning-platform application.

Intermediate 35 min
Explore →

Docker in Practice

Docker Networking

Why the default bridge network doesn't support name resolution between containers, creating user-defined networks with docker network create, container-to-container communication by name, and why localhost means something different inside a container.

Intermediate 30 min
Explore →

Docker Volumes

Why containers are ephemeral, named volumes, mounting a volume with docker run -v, where PostgreSQL stores its data, named volumes vs. bind mounts, and verifying persistence with a deliberate test.

Intermediate 30 min
Explore →

Docker Compose

docker-compose.yml, services, depends_on, Compose's automatic service-name networking, and volumes -- reducing everything "Docker Networking" and "Docker Volumes" did by hand to one file and docker compose up.

Intermediate 35 min
Explore →

Production Docker for Java Applications

Faster rebuilds with layer caching, a non-root user, a Dockerfile HEALTHCHECK, waiting for real dependency readiness with Compose's depends_on: condition: service_healthy, and production configuration/secrets.

Advanced 40 min
Explore →

The Practical Project: Spring Boot + PostgreSQL with Docker

Every piece this course covered -- multi-stage Dockerfile, non-root user, HEALTHCHECK, Docker Compose, named volume, automatic networking -- brought together in one small, complete Spring Boot + PostgreSQL task tracker application. The closing lesson of the course.

Advanced 45 min
Explore →