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.
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.
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.
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.
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.
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.
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.
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.
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.