Booking options
£37.99
£37.99
On-Demand course
18 hours 29 minutes
All levels
Understand how Docker works and learn its core features with this hands-on course. This is 90% practice without any useless demos! Learn how to create different containers such as Node.js, Python, WordPress, MongoDB, MySQL, Redis, Elasticsearch, and much more.
Docker is a software framework for building, running, and managing containers on servers and the cloud. In this course, you'll start by installing Docker on your computer - macOS, Windows, or Linux. Afterward, you'll jump into tons of practice activities and use different Docker features. You'll pull different Docker images and run multiple containers using them. In practice sections, you'll perform multiple practice Docker activities, such as running Docker containers in the foreground and background, then connecting to certain processes in Docker from the terminal. After that, you'll learn to expose internal container ports to the outside and add environment variables for containers. You'll also create custom names and hostnames for containers, create a custom bridge network and run multiple containers inside of it, communicate between containers, and persist container folders using volumes mapping. Next, you'll also learn and practice how to use different Docker images (view and edit them). For that, you will not use the terminal; instead, you'll use the GUI application Visual Studio Code. By the end of this course, you'll gain fundamental practical knowledge of Docker and be able to easily use it for the development and testing of your applications. Most importantly, you'll understand Docker's main features such as Docker Volumes, Docker networking, and environment variables. All the resource files are uploaded on the GitHub repository at https://github.com/PacktPublishing/docker
Learn how to use Docker images and create containers
Manage Docker containers: start, stop, prune, restart
Enable port mapping and expose container ports to outside
Run Node and Python applications using Docker containers
Create environment variables for Docker containers
Create custom bridge networks and run multiple containers
This course is for anyone who is interested in learning about Docker and its components via practical projects. Any software developer who wants to develop, ship, and run their applications in their regular day-to-day work can highly benefit from this course.
There are no specific requirements, just a desire to make your hands dirty and learn Docker by doing it. Any OS (macOS, Windows, or Linux) will work to get started with this course.
This is a complete, hands-on, and comprehensive course on Docker. The course will help you get acquainted with the fundamental concepts followed by jumping straight into tons of practice activities and using different Docker features.
Additionally, all project files are available in the GitHub repository. This means that during this course, you'll also learn how to use Git and GitHub along with Visual Studio Code.
A complete, comprehensive, and hands-on course on Docker delivered from an industry expert * Volumes mapping and specific working directories in the Docker containers * Communicate between containers by container name in the custom bridge network
https://github.com/PacktPublishing/docker
Bogdan Stashchuk has over 20 years of experience as a software engineering instructor. He excels at breaking down complex topics into easy-to-follow steps. His courses are designed with hands-on exercises, ensuring that learners can actively participate and apply what they learn. From start to finish, students can follow along and complete tasks just as Bogdan demonstrates in his lectures. He also includes challenging assignments with detailed solutions. This approach helps learners understand and remember the material long after they've completed the course. Through his dedication and expertise, Bogdan ensures a valuable and effective learning experience for everyone.
1. Introduction to the Course
1. Course Overview This video provides an overview of the tutor and about this course. |
2. Docker Installation
1. Installing Docker Desktop on Mac This video demonstrates the installation of Docker Desktop on Mac. |
2. Installing Docker Desktop on Windows This video demonstrates the installation of Docker Desktop on Windows. |
3. Installing Docker Engine on Linux This video demonstrates the installation of Docker Engine on Linux. |
3. Basic Docker Container (Ubuntu, Busybox, Alpine)
1. Running Hello-World Container This video helps you with running the hello-world container. |
2. Running Ubuntu Container This video helps you with running Ubuntu container. |
3. Running Busybox Container This video helps you with running Busybox container. |
4. Alpine Versus Busybox Images This video talks about the difference between Alpine and Busybox images. |
4. Port and Volume Mapping in the Docker Containers
1. Running Nginx with Exposed Port This video helps you in running Nginx with exposed port. |
2. Nginx Container with Custom Content This video shows mapping of Nginx container with custom content. |
3. Adding Favicon to the Project This video explains how to add favicon to the project. |
4. Using Path Variable in Volume Mapping This video talks about how to use path variable in volume mapping. |
5. Docker Containers Management (Ubuntu, Nginx)
1. Running Containers in Background This video focuses on running containers in the background. |
2. Running Container with Pseudo TTY This video shows how to run container with Pseudo TTY. |
3. Creating Multiple Ubuntu Containers from the Same Image This video explains how to create multiple Ubuntu containers from the same image. |
4. Running Multiple Nginx Servers This video explains how to run multiple Nginx servers. |
5. Cleaning Up Stopped Containers This video talks about cleaning up stopped containers. |
6. Running Python Applications in Docker
1. Creating Python Containers This video is about creating Python containers. |
2. Simple Python Program This video explains and shows a simple Python program. |
3. Challenge: Simple Python Calendar App This is a challenge video that gives the problem statement and a hint to create a simple Python calendar app. |
4. Challenge Solution: Simple Python Calendar App This is a challenge solution video that demonstrates how to build a simple Python calendar app. |
7. Running Node.js Applications in Docker
1. Running Node.js Containers This video demonstrates running Node.js containers. |
2. Hello World Application with Node This video helps you with writing a hello world application with Node.js. |
3. Express Web Server Using Node This video covers Express web server using Node.js. |
4. Add Handling of the SIGINT and SIGTERM Signals This video helps you add handling of the SIGINT and SIGTERM signals. |
5. Challenge: Create Files Handling Node App This is a challenge video that gives the problem statement and hint to create files handling Node app. |
6. Challenge Solution: Create Files Handling Node App This is a challenge solution video that demonstrates creating files handling Node.js app. |
7. Conclusion - Containers can Create and Modify External Files This is a conclusion video that revises how containers can create and modify external files. |
8. Running MongoDB Containers
1. Pulling Mongo Image and Creating the First Mongo Container This video helps in pulling Mongo image and creating the first Mongo container. |
2. Starting Additional Processes in the Running Container This video explains how to start additional processes in the running container. |
3. What is Entry Point and Where is it Located This video explains about the entry point and its location as well. |
4. Creating New Mongo Database Using Mongo Shell This video demonstrates creating a new Mongo database using Mongo shell. |
5. Running Mongo Container with Persistent Database This video focuses on running Mongo container with a persistent database. |
9. Communication Between Containers and Environment Variables (MySQL, phpMyAdmin)
1. Starting WordPress Container This video helps you starts with WordPress container. |
2. Plan for the Next Lectures - Networks and Environment Variables This video focuses on the plan for the next lectures - networks and environment variables. |
3. Default Bridge Network and Communication Between Containers This video demonstrates the default bridge network and communication between containers. |
4. Exploring Environment Variables This video helps in exploring environment variables. |
5. Starting MySQL Container with env Variable This video helps you start MySQL container with env variable. |
6. Launching Another phpMyAdmin Container This video demonstrates launching another phpMyAdmin container. |
7. Connecting phpMyAdmin to MySQL Container This video explains connecting phpMyAdmin to MySQL container. |
8. Making Notes of the Commands This video demonstrates how to make notes of the commands. |
10. Default and Custom Bridge Networks in Docker (WordPress, MySQL)
1. Communication Using Hostnames in the Default Bridge Network This video talks about communication using hostnames in the default bridge network. |
2. Inspecting Default Bridge Network This video shows how to inspect default bridge network. |
3. Creating New Custom Bridge Network This video helps in creating a new custom bridge network. |
4. Creating Busybox Containers in the Custom Network This video helps in creating Busybox containers in the custom network. |
5. Using Custom Persistent Names for Connectivity in the Custom Network This video is about using custom persistent names for connectivity in the custom network. |
6. MySQL and phpMyAdmin in the Custom Network This video talks about MySQL and phpMyAdmin in the custom network. |
7. Challenge: WordPress with MySQL and phpMyAdmin This is a challenge video that gives the problem statement for creating WordPress with MySQL and phpMyAdmin. |
8. Challenge Solution: WordPress with MySQL and phpMyAdmin - Part 1 This is first of the two-part challenge solution video that demonstrates working on WordPress with MySQL and phpMyAdmin. |
9. Challenge Solution: WordPress with MySQL and phpMyAdmin - Part 2 This is second of the two-part challenge solution video that demonstrates working on WordPress with MySQL and phpMyAdmin. |
10. Summary for the WordPress and MySQL Setup This video talks about the summary for the setup of WordPress and MySQL. |
11. Additional Containers - Elasticsearch, Redis, Httpd
1. Getting Docker Image with Curl Utility This video helps in getting Docker image with curl utility. |
2. Challenge: Run Elasticsearch and Curl Containers in the Custom Network This is a challenge video that gives the problem statement and hint to run Elasticsearch and curl containers in the custom network. |
3. Challenge Solution: Run Elasticsearch and Curl Containers in the Custom Network This is a challenge solution video that demonstrates running Elasticsearch and curl containers in the custom network. |
4. Inserting Documents into Elasticsearch Index This video explains how to insert documents into Elasticsearch index. |
5. Starting Redis Container This video will help you get started with the Redis container. |
6. Challenge: Redis and Redis-Commander This is a challenge video that gives the problem statement for Redis and Redis-Commander. |
7. Challenge Solution: Redis and Redis-Commander This is a challenge solution video that demonstrates working on Redis and Redis-Commander. |
8. Launching Httpd Container This video helps in launching Httpd container. |
12. Docker on Practice Summary and Introduction to the Docker Fundamentals
1. Docker Fundamentals Practical Section Summary This video provides a conclusion and summary to the Docker fundamentals practical section. |
2. Introduction to the Docker Fundamentals This video provides an introduction to the Docker fundamentals. |
13. What is Docker and Docker Components
1. Virtual Machines Versus Docker Containers This video demonstrates virtual machines versus Docker containers. |
2. Virtual Machines Architecture This video shows architecture of the virtual machine. |
3. How I Use Virtual Machines This video explains how to use virtual machines. |
4. My Computer Just Ran Out of Memory This video explains what to do if your computer just ran out of memory. |
5. Docker Containers Architecture This video explains the Docker containers architecture. |
6. How Docker is Running on Different Operating Systems This video explains how Docker is running on different operating systems. |
7. Container Processes and Resources This video demonstrates the container processes and resources. |
8. Docker Components: Overview This video provides an overview of the Docker components. |
9. Docker Client This video explains about the Docker Client. |
10. Docker Server This video explains about the Docker server. |
11. Docker Host This video explains about the Docker host. |
12. Docker Image This video explains about the Docker image. |
13. Docker Container This video explains about the Docker container. |
14. Docker Repository This video demonstrates the Docker repository. |
15. Docker Registry This video demonstrates about the Docker registry. |
16. Docker Components: Summary This video provides a summary of Docker components. |
14. Introduction to the Images and Containers
1. Docker Commands Versus Management Commands This video talks about Docker commands versus management commands. |
2. Alternative Commands This video shows the alternative commands. |
3. Basic Container and Images Commands This video talks about the basic container and images commands. |
4. Cleaning Up My Docker Setup This video explains how to clean up the Docker setup. |
5. Pulling Images from Docker Hub This video explains pulling images from Docker Hub. |
6. What is Docker Image This video focuses on the Docker image in detail. |
7. Creating New Container from the Image This video demonstrates creating new container from the image. |
8. What is CMD in the Docker Image This video explains the CMD in the Docker image. |
9. What is Docker Container This video explains Docker container in detail. |
10. Summary for the Introduction to Images and Containers This video provides a summary for the introduction to images and containers. |
15. Getting Started with Linux
1. Why You Need to Know Linux while Studying Docker This video explains why you need to know Linux while studying Docker. |
2. Introduction to the Linux Section This video provides an introduction to the Linux section. |
3. Possible Options to Use Linux on macOS and Windows This video explains possible options to use Linux on macOS and Windows. |
4. Creating Linux Container Using Docker This video explains creating Linux container using Docker. |
5. What is Shell, Terminal, and Command This video explains about shell, terminal, and command in detail. |
6. Getting Information about Linux Computer This video helps in getting information about Linux computer. |
7. How Shell Understands that You Have Entered a Command This video explains how shell understands that you have entered a command. |
8. Getting Help about Commands Using Man Utility This video explains in getting help about commands using man utility. |
9. Command Options This video explains about command options. |
10. Command Arguments This video explains about command arguments |
11. Arguments for Options This video explains about the arguments for options. |
16. Processes in Linux
1. What Are Processes This video explains about the processes in detail. |
2. List Running Processes This video shows the list running processes. |
3. Starting Additional Processes and Killing Processes This video helps in starting additional processes and killing processes. |
4. Installing htop Package Using apt-get This video explains installing htop package using apt-get. |
5. Using the htop Utility This video explains how to use the htop utility. |
6. Summary for Processes Monitoring This video provides a summary for processes monitoring. |
17. Data Streams and Piping in Linux
1. Data Streams of the Process This video explains data streams of the process. |
2. Redirecting STDOUT and STDERR to the File This video helps in redirecting STDOUT and STDERR to the file. |
3. Where Process Data Streams Send Data by Default This video explains where process data streams send data by default. |
4. How to Send Data to STDIN and Redirect STDOUT and STDERR This video explains how to send data to STDIN and redirect STDOUT and STDERR. |
5. Piping This video explains piping in detail. |
6. Summary for Data Streams and Piping This video provides a summary for data streams and piping. |
18. Files and Directories Management in Linux
1. Introduction to Files and Directories Management This video provides an introduction to files and directories management. |
2. Linux File System Structure and Navigation This video explains the Linux file system structure and navigation. |
3. Listing Files and Directories This video explains listing files and directories. |
4. Exploring Subdirectories of the Root Directory This video helps in exploring subdirectories of the root directory. |
5. Creating and Removing Directories and Files This video explains creating and removing directories and files. |
6. Creating New Files This video helps in creating new files. |
7. Editing Files Using Vim and Nano Editors This video demonstrates editing files using Vim and Nano editors. |
8. Copy and Move Files and Directories This video explains copying and moving files and directories. |
9. Reading Files This video explains about reading files. |
10. Filtering Text Using the grep Command This video demonstrates filtering text using the grep command. |
11. Soft Versus Hard Links This video talks about soft versus hard links. |
12. Creating Hard and Soft Links This video explains creating hard and soft links. |
19. Search Operations in Linux
1. Introduction to the Find Command This video provides an introduction to the Find command. |
2. Searching Files Using the Find Command This video helps in searching files using the Find command. |
3. Some Other Examples of the Find Command This video shows some other examples of the Find command. |
4. Executing Additional Commands Inside of the Find Operation This video demonstrates executing additional commands inside of the Find operation. |
5. Xargs Command This video explains the Xargs command in detail. |
6. Piping Results of the Find Command to the Other Command Using Xargs This video focuses on the piping results of the Find command to the other command using Xargs. |
20. Compressing and Sorting in Linux
1. Overview of the tar and gzip Utilities This video provides an overview of the tar and gzip utilities. |
2. Creating and Extracting Compressed Archive Using tar and gzip This video shows creating and extracting compressed archive using tar and gzip. |
3. Sorting Files Using Ls Command This video explains sorting files using the Ls command. |
4. Sorting Contents of the Files Using Sort Utility This video explains sorting contents of the files using Sort utility. |
21. User Management and Permissions in Linux
1. Introduction to the User Management in Linux This video provides an introduction to the User Management in Linux. |
2. Creating Users Using useradd Command This video shows how to create users using useradd command. |
3. Creating New User Using adduser Command This video explains how to create new user using adduser command. |
4. Changing Ownership of the File This video explains how to change ownership of the file. |
5. Changing Permissions This video explains how to change files permissions. |
22. Executable Files and Scripting in Linux
1. Creating Executable Script This video explains how to create executable script. |
2. Adding Path to the Scripts into the PATH Variable This video explains about adding path to the scripts into the PATH variable. |
3. Summary for Users, Permissions, and Scripts This video provides a summary for users, permissions, and scripts. |
23. Networking in Linux
1. Introduction to the Linux Networking This video provides an introduction to this section. |
2. Exploring IP address settings This video helps you in exploring IP address settings. |
3. Verifying Connectivity with Remote Servers This video helps you in verifying connectivity with remote servers. |
4. Enabling SSH on the Linux Server This video helps in enabling SSH on the Linux server. |
5. Connecting to the Linux Server Remotely Via SSH This video explains connecting to the Linux server remotely via SSH. |
6. Using curl and wget Utilities This video explains using curl and wget utilities. |
24. Environment Variables in Linux
1. Environment Variables This video explains about environment variables. |
2. SOLUTION - Script with Environment Variables Access This video focuses on the script with environment variables access. |
3. Linux: Summary This video provides a summary on Linux OS. |
25. Launching Course Project Application without Docker
1. Introduction to the Dockerfiles and Docker Compose This video provides an introduction to the Dockerfiles and Docker Compose. |
2. Cloning Remote Docker Repository with Project Files This video explains cloning remote Docker repository with project files. |
3. Project Overview This video provides an overview of the project. |
4. Getting Unsplash API Key This video shows getting Unsplash API key. |
5. Installing Node.js and NPM This video helps you with installing Node.js and NPM. |
6. Installing Python, Pip, and Pipenv on macOS This video helps you with installing Python, Pip, and Pipenv on macOS. |
7. Installing Python, Pip, and Pipenv on Windows This video helps you with installing Python, Pip, and Pipenv on Windows. |
8. Starting Frontend App Using NPM This video helps you get started with frontend app using NPM. |
9. Starting API Application Using Python This video helps you get started with API application using Python. |
10. Verifying How Images Gallery Project Works This video helps in verifying how images gallery project works. |
11. Summary for Start of the App without Docker This video provides a summary for start of the app without Docker. |
26. Building Custom Images Using Dockerfiles
1. Initializing Git and GitHub for the Project This video explains initializing Git and GitHub for the project. |
2. Installing Docker and Hello-World Using Docker This video helps you with installing Docker and hello-world using Docker. |
3. Creating Dockerfile for the Python API Service This video explains how to create Dockerfile for the Python API service. |
4. Building Docker Image for the API Service This video explains building Docker image for the API service. |
5. Running API Containers Based on the Built Docker Image This video explains running API containers based on the built Docker image. |
6. Analyzing API Docker Container from Inside This video helps in analyzing API Docker container from inside. |
7. Docker Image for the API Service: Summary This video provides a summary on Docker image for the API service. |
8. Creating Dockerfile for the Frontend Application This video explains creating Dockerfile for the frontend application. |
9. Building Docker Image for the Frontend App This video helps you with building Docker image for the frontend app. |
10. Running Docker Container for the Frontend Service This video helps you with running Docker container for the frontend service. |
11. Exploring Frontend Container from Inside This video helps you explore frontend container from inside. |
12. Why You Need to Have the node_modules Folder and Python venv Folders Locally This video explains why you need to have the node_modules folder and Python venv folders locally. |
13. Running Both Frontend and API Containers in Background This video helps you with running both frontend and API containers in the background. |
27. Launching Multiple Services Using Docker Compose
1. Creating a Basic docker-compose File This video talks about creating a basic docker-compose file. |
2. Bringing Up Both Containers Using docker-compose This video helps in bringing up both containers using docker-compose. |
3. How to Operate Containers Using docker-compose This video explains how to operate containers using docker-compose. |
4. Creating Volumes Mapping for the Frontend Service This video explains creating volumes mapping for the frontend service. |
5. Fix Volumes Sync in the React Container This video explains how to fix volumes sync in the React container. |
6. Enabling Volumes Mapping for the API Service This video helps in enabling volumes mapping for the API service. |
7. Enabling auto-restart and docker-compose Summary for API and Frontend This video demonstrates enabling auto-restart and docker-compose summary for API and frontend. |
8. Why Do We Need Mongo and mongo-express Services This video explains why do we need Mongo and mongo-express services. |
9. Mongo and mongo-express Official Docker Images Overview This video provides an overview of Mongo and mongo-express official Docker images. |
10. Adding Mongo and mongo-express Services to the docker-compose File This video helps you with adding Mongo and mongo-express services to the docker-compose file. |
11. Starting All Services Including Mongo and mongo-express Using docker-compose This video helps you with starting all services including Mongo and mongo-express using docker-compose. |
28. Exploring Docker Compose Setup
1. Docker Desktop Overview This video provides an overview of the Docker Desktop. |
2. Using Mongo Shell and mongo-express GUI This video helps you with using Mongo shell and mongo-express GUI. |
3. MongoDB Data is Now Deleted after docker-compose Restart This video explains how MongoDB data is now deleted after docker-compose restart. |
4. Configuring Persistent Data Volume for the Mongo Container This video helps in configuring persistent data volume for the Mongo container. |
5. Verifying Persistent MongoDB Storage Using Volume This video explains verifying persistent MongoDB storage using volume. |
6. Mongo and mongo-express Setup Summary This video provides a summary on Mongo and mongo-express setup. |
7. How docker-compose Containers Communicate with Each Other This video explains how docker-compose containers communicate with each other. |
8. Exploring Networking Between Docker Containers This video helps in exploring networking between Docker containers. |
29. Course Summary
1. Docker Complete Guide Summary This video provides a summary of this entire course. |