
Explore docker from beginner to expert by mastering containers, images, multi-stage builds, and docker compose, while learning to manage networks, debugging, logging, and monitoring.
Explore essential docker commands with a downloadable cheat sheet covering image, container, multistage build, networking, and compose commands, plus guidance on leaving an honest Udemy review.
Explore the evolution from dedicated servers and virtualization to cloud and containers, showing how containers enable lightweight, consistent deployments and rapid start times.
Explore the architecture of virtual machines and Docker containers, including host OS, hypervisors, Docker Engine, shared kernel, isolation, efficiency, and portability.
Install docker desktop on Mac, choose Apple silicon or Intel, download, install, and launch. Explore settings, themes, startup options, and resources.
Install Docker Desktop on Windows by enabling Windows Subsystem for Linux and using WSL2. Download the appropriate x86 architecture, verify with docker --version, and review startup and settings.
Understand the dockerfile, image, and container lifecycle; build environments from a dockerfile, pull images from docker hub, and run containers with docker desktop and terminal commands.
Differentiate base images and application images: base images offer full customization, while application images ship preconfigured runtimes like Node.js or Python, built in layers via a Dockerfile.
Build custom Docker images by writing a Dockerfile, choosing a base image like Debian, installing utilities with apt-get, and building and running containers to understand layers and run vs cmd.
build a Debian 12 Docker image, set entrypoint to /usr/games/cowsay, pass cowsay this is my first lab; name image cowsay 2.0 and verify cow says this is my first lab.
Create a fresh docker file using a Debian 12 base, install cowsay, configure the start command, then build and run the image to display cowsay output.
Optimize docker images to reduce size, speed deployment, and improve security using small base images (alpine, debian slim), fewer layers, minimal caching, and removing unused files, including multi-stage builds.
Learn how docker converts a docker file into an image and runs containers, master start, stop, inspect, and monitor tasks with docker ps, docker run, docker inspect, and docker stats.
Master docker container management by using detached mode for background runs with logs accessible via docker logs, and interactive mode for shell access, plus production restart policies.
Run an nginx web server in detached mode using docker run -d, name it web server nginx, and map port 80 to the host to access via localhost:80.
Apply container management concepts by pulling httpd, running a detached Apache Web Server container named Apache Web Server with port 8080 mapping to 80, then verify and stop.
Pull the httpd image, run a detached container named apache web server with port 8080 mapped to 80, verify status, view processes, then stop the container.
Clean up unused containers and name them for a lean environment; remove with docker rm by name or id, stop before removing, and set a restart policy for production.
Learn how to run Docker containers in detached and interactive modes, attach or exec into running containers, and open a bash shell to inspect and modify Nginx configurations.
Modify a running nginx container in detached mode, edit its index.html with vim via an interactive shell, and verify live changes in the browser after port forwarding to local 8080.
Set up an nginx container in detached mode with port 8080, verify the image, then modify server page from within the container by updating index.html to display a new heading.
Learn to containerize a real-world node.js app (express) by building a docker image from a root-level dockerfile, installing dependencies with npm, and running with port mappings.
Explore how multistage builds reduce Docker image bloat by separating build and runtime stages, copying only necessary artifacts to produce smaller, more secure, faster containers.
Compare single-stage and multi-stage docker builds using a node express app; learn how multi-stage builds reduce image size by separating builder tools from the runtime.
Learn how docker networking uses the default bridge docker0 with a 172.17.0.0/16 subnet, enabling container-to-container communication, and implement port forwarding to map host ports to container ports.
Explore how containers stay isolated in separate docker networks to meet security needs, then test cross-network connectivity with ping and learn about using docker compose.
Create and use a custom docker network with a bridge driver to enable container-to-container and host-to-container communication. Attach containers to the network and verify connectivity with ping.
Orchestrate multiple containers with docker compose, starting services from images in one file and applying shared networks, port mapping, and environment variables as infrastructure as code.
Learn to extend a docker-compose setup by renaming the network to my network, adding a second web container mapped to port 8081, and using MySQL eight.
Update the docker-compose.yml to use my network, add a second web service on port 8081, and switch postgres to mysql eight, then verify cross-container connectivity and port exposure.
This course contains the use of artificial intelligence.
This will be one of the most interesting and fun courses that you will take you on Docker.
With an animations and hands-on first approach, this course has been designed to create a course that is super friendly for absolute beginners. The course extensively uses animations, figures and real-world examples to make complex Docker concepts easy to understand and engaging to follow.
See complex Docker concepts come to life with our engaging lectures!
Course Coverage
We will start by discussing how containers and Docker evolved to solve the problem of deployments because deploying applications to production had serious challenges of reproducibility because of issues like configurations, libraries and network settings and how containers make the applications independent of the platform and you can perfectly replicate the same settings in all stages of production.
We will discuss docker architecture and the key components like the Docker Engine which sits on top of the host OS and manages containers.
We will take a deep dive into Docker images and explore layers, how to build custom docker images as well as techniques on how to optimise images for size, efficiency and performance.
We will also learn about container management including common commands, different modes of running containers such as detached and interactive as well, editing live containers as well as best practices.
We will see multi-stage builds in action and understand how multi-stage builds can significantly optimise the docker image size by removing unneeded build tools while still providing key functionality.
We will also discuss Docker networking, primarily the bridge mode as well as creating custom containers. We also explored how docker compose offers an elegant one-shot solution to facilitate the task of creating containers, networks and configurations.
Hands-on Practice Labs
An important aspect of this course is that for every topic that we explore, I will showcase a real-world application and you have several hands-on practice labs to get your hands dirty on how to actually apply the concepts that you have learned. From Dockerising real-world applications, to optimising your Docker images by up to 10 times:
From debugging, to logging to monitoring applications in containers. You will apply hands-on skills to create Docker networks, manage container lifecycle as well as leverage docker-compose to orchestrate containers, networks and configurations.