
Learn how a docker image forms a layered, parent-child stack starting from scratch, adds an operating system like BusyBox or CentOS, and finally runs processes such as nginx or Apache.
Explore how a Dockerfile defines image creation with from and run instructions, choosing a base OS like CentOS, installing packages, copying files, and launching the Apache service.
Install docker on Debian 9 or 10, set up a Debian VM, update packages, add docker key, install docker, add admin to the docker group, and enable docker at boot.
Learn how official Docker images from Docker Hub provide ready to run packages like Nginx or Apache, pull them with tags, and understand image layers and versioning.
Pull and manage Docker images, selecting latest or specific tags like MySQL 5.7. List local images with Docker images and remove unwanted images using docker rmi with tags or IDs.
Use docker build to turn a dockerfile into an image named CentOS Apache version one, then observe how docker pulls base images, installs httpd, and caches layers for faster rebuilds.
Explore how the run instruction in Docker executes commands to overwrite nginx index.html. Build a versioned image and test in a container to verify the updated home page.
Explore how to browse and inspect a Docker image by running a container, entering it with docker exec -ti, and navigating its working directory to view files.
Add and switch to a dedicated application user in a Dockerfile, then change ownership of the html folder recursively to grant permissions before removing files as that user.
Learn how the CMD instruction keeps a container alive by running a foreground process. See why missing CMD causes the container to exit and how to run Apache in foreground.
Learn how dockerignore reduces build context by excluding folders, keeping the context small and improving performance. Place a dockerignore at the root and list folders to ignore.
Build a docker image with apache, SSL, and PHP on CentOS seven, installing httpd and PHP, then test with a PHP info page.
Build a Docker image that runs Apache with PHP and SSL using self-signed certificates. Copy the certs into the image, configure SSL, and run a container on HTTPS port 443.
Debug and solve a docker-based challenge by serving a php info page and html content with nginx and php-fpm, diagnose via logs, adjust fastcgi port, and rebuild images.
Publish the MySQL container port 3306 and expose it to the docker host, create a database and a non-root user via environment variables, and verify connectivity from the host IP.
Copy files between a running Docker container and the host using docker cp. Copy into and out of an Apache server container, and remember persistence comes from the Dockerfile.
Turn a running container into a reusable image using Docker commit, acknowledging that containers are read-write layers and only image-defined configurations persist.
Learn how to use bind volumes to map host folders to a container, preserving data after the container dies and how to restore it with a new MySQL container.
Create and map normal Docker volumes with docker volume create to a container path such as /var/lib/mysql, persisting data, and contrast this with bind volumes that map local folders.
Map a host folder to the nginx container in Docker to persist web data, enable live updates, and serve pages on port 8080.
Share a directory between two containers by using a shared Docker volume, so one container generates HTML content while the other serves it with Nginx.
Attach containers to a user-defined docker network with docker run --network, instead of the default bridge. Ping by name within this network for dns-style resolution and easier container communication.
Learn to assign a static IP to a container within a user defined network using the --ip flag, and see how to inspect the resulting IP with docker inspect.
Learn to use docker compose to define multi-container apps with docker-compose.yaml, create an nginx service from nginx:alpine, map ports, and manage lifecycles with docker compose up and down.
Master how to set environment variables in docker compose using the environment section or an emf file, applied to a mysql service with correct indentation.
Explore volumes in Docker Compose, including bind volumes that map a local folder to a container path and normal volumes defined at the top level, with practical examples.
Learn to build images with Docker Compose by configuring the build context and Dockerfile name, and running docker compose build to create images from a Dockerfile.
Learn to install Joomla with Docker Compose, connect a MySQL 5.7 database, map volumes for persistence, and verify setup by recreating containers.
Install WordPress with Docker Compose by wiring MySQL and WordPress services, mapping data and HTML volumes, and setting root, user, and password environment variables.
This course requires you to download docker from the official Docker Repositories as well as images from Docker Hub. If you are a Udemy Business user, please check with your employer before downloading software.
Are you tired of struggling to learn Docker? Does it feel too complicated or confusing? Have you heard about it but still don't fully understand what it's all about?
That ends here! By the end of this course, you'll become a Docker expert!
Learning by doing is the most effective way to understand Docker, and this course is packed with hands-on exercises to help you master it. You'll build real-world applications like:
MySQL
Postgres
Jenkins
WordPress
PrestaShop
MongoDB
Nginx & Apache
SSL & Tomcat
Drupal
…and many more!
You'll cover essential topics such as:
Images
Containers
Volumes
Networks
Docker Compose
…and much more!
This course doesn't just teach theory — you'll gain practical experience that you can immediately apply to real-world projects. Whether you're looking to advance your career, manage complex applications more efficiently, or simply understand how containers work, this course has everything you need. No matter your level of experience, you'll be guided step-by-step to ensure you fully understand each concept.
What are you waiting for? Start your Docker journey now!