
Mastering Docker essentials guides you through containerization with Docker, images, containers, volumes, networks, Docker Compose, including building a Docker file, using Registry and Docker Hub, and multi-stage Python app deployment.
Explore how Docker transforms application development and deployment as the de facto standard for containers. Define containerization, review container toolsets, and dive into Docker architecture, concepts, and terminologies.
Explore what containers are and the benefits of containerization. Bundle an application with its dependencies to run on any infrastructure, enabling portability, isolation, and faster startup.
Explore Linux namespaces and cgroups, the core building blocks that enable containers to isolate processes and manage resources such as CPU, memory, disk, and network.
Explore popular container tool sets for image creation, runtime, and orchestration, including Docker, Canico, Kubernetes, and Nomad. Learn how these tools fit different use cases in development and production.
Explore Docker, an open source containerization platform that builds, ships, and runs containerized applications, decoupling them from infrastructure to speed deployment and testing.
Explore docker architecture as a client-server model where the cli talks to the daemon on the docker host, managing images, containers, networks, volumes, and lifecycles with Run C.
Explore core Docker objects: images, containers, networks, and volumes, and learn how images become containers, how networks enable communication, and how volumes provide persistent storage.
Explore the official Docker documentation through a hands-on walkthrough of guides, manuals, and reference sections, learning to develop, build images, deploy, and navigate Docker tools.
Learn how containerisation bundles an application with its dependencies into a portable container. Docker serves as the industry standard for building, shipping, running, and managing these containers.
Install Docker on Linux and Windows, then explore the Docker CLI through hands-on demonstrations that make the basics clear.
Explore docker installation methods across Windows, Mac, and Linux, including Docker Desktop and Docker Engine on Linux (Docker CE), with Ubuntu examples and system requirements.
Install docker on Linux by updating packages and installing docker.io, then verify with docker --version. Add your user to the docker group to run docker without sudo.
Demonstrates installing Docker Engine on Ubuntu via the official documentation, using the repository method, installing docker cli, containerd, buildx, and compose, and verifying with docker --version and docker group setup.
Learn to install Docker Desktop on Windows using the official installer, meet system requirements (WSL, RAM, admin rights), start the Docker engine, and verify with docker --version.
Learn to install Docker Desktop on Mac, select the correct Apple Silicon or Intel option, download, drag to applications, launch Docker, verify with docker --version, and quit when done.
Explore Play with Docker, a browser-based playground for hands-on demonstrations and exercises. Log in with a Docker account, start a four-hour sandbox, and run Docker --version, noting ephemeral, non-persistent sessions.
Explore the Docker command line interface, written in Go, the client that interacts with Docker daemon, and learn its base command, commands, subcommands, and flags that convert to api calls.
Explore essential docker commands and syntax, including docker system info and docker system df, and docker image ls and docker image pull nginx:latest; use --help for guidance.
Explore Docker installation methods across operating systems, install Docker on Linux and Windows, and practice the Docker CLI with basic commands. Look forward to deep diving into Docker images.
Launch and configure EC2 instance in the AWS console using Ubuntu Server 22.04 LTS, create a RSA key pair (PEM or PPK), and connect via SSH to the public IP.
Explore docker images, learn common image commands, and discuss registries to understand core docker workflows.
Explore docker images as read-only templates for containers with layered filesystems and copy-on-write. See how a writable container layer enables runtime changes and how registries store images.
Explore how the Docker Hub registry serves as the world's largest public container image repository with versioned images, official and verified publisher images, automated builds, and seamless tooling integration.
Explore the Docker Hub registry to search images, understand tags and exact version pulls, and learn to sign in, create repositories, set visibility, and push images.
Explore Docker image commands and syntax, including pull, ls, tag, history, inspect, and rm, and learn that Docker uses the latest tag by default when no tag is provided.
Explore Docker image management with the CLI, including pull, tag, history, inspect, rm, prune, and search, covering layers, tags such as latest and 1.0, and Alpine images on Docker Hub.
Learn about Docker images, their layered design, and how to create them; explore registries like Docker Hub and practice managing images with the Docker CLI.
Explore container concepts, lifecycle management, and cli-based operations through demonstrations, gaining practical experience with essential container commands and related tasks.
Create a container from a read-only image containing code, libraries, and configurations. Follow its life cycle from created to running to exited and deleted, and stop gracefully.
Explore essential docker container commands and syntax on the Docker CLI, including create, start, run, stop, exec, rename, logs, inspect, rm, and ls -a, with hands-on demonstrations.
Master Docker container management with the Docker CLI, learning to create or run containers, publish ports, attach or detach terminals, and use exec, stop, logs, and prune.
Conclude our topic on containers, their life cycle, and managing them with the Docker CLI. Proceed to learn how to build your own image using a Dockerfile.
Build a container image using a Dockerfile, validate the image, and create and run a container to apply DevOps concepts.
Explore how a Dockerfile defines steps to build a container image with from, workdir, run, and cmd, creating reproducible layers, and how docker build uses the current directory as context.
Demonstrate building a custom Nginx-based Dockerfile to replace the default index.html. Learn to use labels, workdir, environment variables, copy files, expose port, run Nginx, and include a health check.
Validate your Dockerfile with Docker lint, then build and tag a custom image, leveraging layer caching, no-cache builds, and a .dockerignore file to optimize the process.
Compare two Docker installation methods—the simple apt install docker.io and the apt repository approach—explaining when to install Buildx with Buildkit for future compatibility.
Demonstrate building a container from a prebuilt image, using docker file instructions, and verify health status and labels through health checks by accessing Nginx at port 8080.
Conclude this topic on Dockerfiles by exploring Dockerfile instructions, creating and validating a custom Dockerfile, building an image, and running a container to tailor efficient, productive containers.
Learn how Docker lint validates Dockerfiles, fixes syntax errors, and enforces best practices with a user-friendly user interface. Explore Docker concepts, image creation, Docker Hub, and a practical demo.
Explore container networking concepts and how Docker networking works. Learn about default and user-defined network drivers and essential Docker network commands.
Explore docker networking, where containers connect with each other and the outside world, learn how ports enable external access, and understand ip addressing, dns, and default or user-defined network drivers.
Explore Docker networking fundamentals, including the docker0 bridge, veth pairs, and default bridge, host, and none drivers, plus overlay, macvlan, ipvlan networks and their use.
Master docker networking by learning the docker network command, its syntax, and common subcommands. Practice listing, creating, inspecting, removing, and pruning networks in a hands-on demonstration.
Explore docker networks via the cli, including the bridge driver, host driver, and none network, port publishing, container communication, and how to inspect and test connectivity.
Learn about user defined networks in docker, offering automatic dns and better isolation than the default bridge, created with docker network create across bridge, overlay, ip, vlan, and macvlan.
Create and use a user defined bridge network in Docker, demonstrate DNS-based container communication, demonstrate isolation from external networks, and publish ports to access nginx via host port 8085.
Explore docker networking fundamentals, covering driver-based networks, default networks, and user defined networks, with practical demonstrations. Preview the next topic as we move toward docker volumes.
Explore how Docker volumes work in containers, the types of volumes, and how to manage and mount them with the Docker CLI, reinforced by hands-on examples.
Compare docker data storage options, focusing on volumes as the preferred persistent storage and bind mounts for host file sharing, plus tmpfs and in-memory options.
Learn how docker volumes persist data beyond container lifecycles, differentiating named and anonymous volumes, and mount them into containers to enable data sharing and persistence.
Explore Docker volume basics and syntax, using the Docker volume command to create, list, inspect, and remove volumes, and mount named or anonymous volumes with -v or --mount.
Demonstrates creating, listing, inspecting, and removing Docker volumes with the Docker CLI, highlighting the local driver and mount points for data persistence in containers.
Demonstrates data persistence with docker volumes by mounting a volume to nginx html directory and editing index.html; changes persist after removing and recreating the container.
Explore Docker storage options with a focus on Docker volumes, their types, and how to create, mount, delete, and persist data using the Docker CLI.
Containerize a Python app end-to-end by creating a Docker file, publishing to Docker Hub, pulling and running the image, and exploring multi-stage builds.
Create and containerize a Python Django frontend with a PostgreSQL backend by building a Dockerfile from Ubuntu 24.04, configuring ports, environment variables, and startup script, and using a dockerignore file.
Demonstrates single vs multi-stage Docker builds, creates a multi-stage Dockerfile with build and final stages, copies artifacts, installs Python and Django, and yields smaller, more secure images.
Publish a local image to Docker Hub by logging in, retagging it for the target repository, and pushing with docker image push, then verify the image on Docker Hub.
Demonstrates real-time Docker deployment by pulling an image, creating a user-defined network, launching a Postgres backend, and publishing port 8000 for a live application.
Containerize a Python application using a Dockerfile, optimize the image, retag, and push to Docker Hub, then simulate pull and run. Introduce Docker compose to efficiently run multi-container applications.
Discover YAML fundamentals for DevOps configurations, compare YAML with XML and JSON, and learn dictionaries, lists, indentation, and validation using YAML lint.
Discover Docker compose, its benefits, and how it manages the life cycle of multiple containers and services, with the Docker compose utility and essential commands demonstrated.
Define and manage multi-container applications with a single compose.yaml file, using services, networks, volumes, configs, and secrets. Learn deployment, scaling, and environment consistency across development, testing, and production environments.
Learn to manage compose applications using the Docker Compose command and its subcommands, practice up, ls, ps, logs, and down, and follow a hands-on demonstration.
Demonstrate building and running a two-container application with docker compose, writing a compose YAML, creating the Nick's Academy network, and managing services from up to down.
Master docker compose basics by understanding its purpose, benefits, file format, structure, and elements, with a demo of deploying a multi-container application and common commands.
Docker is an open platform that provides tools and solutions to package, build, and run containerized applications.
What’s in this course?
This Docker course, designed for everyone and provides a detailed overview of Docker essentials using a systematic and hands-on approach. It delves into fundamental Docker concepts and key concepts such as images, containers, volumes, networks, etc. You will also gain hands-on proficiency in creating optimized Dockerfiles for containerizing applications and learn how to use Docker Compose to run multiple containers. Each course topic includes lectures to clarify the concept, demonstrations to show it in action, and finally, an assignment to test your understanding and solidify your learning.
If you’re new to Docker, don’t worry—this course starts from the basics and builds on gradually to intermediate topics.
Legal Notice:
Docker® is a registered trademarks of Docker Inc. in the United States and other countries. This course is not certified, accredited, affiliated with, nor endorsed by Docker, Inc.
Course Structure:
Lectures
Demos
Quizzes
Assignments
Course Contents:
Introduction to Docker
Setting up Docker Engine
Setting up Docker Desktop
Understanding Docker Architecture
Docker Documentation
Docker Images
Container Registries
Docker Containers
Building an Image with a Dockerfile
Docker Networking
Docker Volumes
Multi-Stage Dockerfile
Containerizing Applications (Sample Project using Python)
Docker Compose
All sections in this course feature live demonstrations. Enrolled users are encouraged to set up their own Docker environment, engage in the exercises, and learn through hands-on experience!