Video description
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.
What You Will Learn
- 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
Audience
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.
About The Author
Bogdan Stashchuk: Bogdan Stashchuk is an experienced instructor (over 20+ years) with a software engineering background. He teaches complex stuff in an easy step-by-step manner. All his courses include practical exercises, which allow the learners to follow him from the start of any course till the end. Learners will perform all tasks the same way he does in his video lectures. There are a lot of challenging assignments, the solutions for which are discussed inside the course. This is the perfect combination that enables you to really learn and retain gained knowledge for a long period of time.
Table of contents
- Chapter 1 : Introduction to the Course
- Chapter 2 : Docker Installation
- Chapter 3 : Basic Docker Container (Ubuntu, Busybox, Alpine)
- Chapter 4 : Port and Volume Mapping in the Docker Containers
- Chapter 5 : Docker Containers Management (Ubuntu, Nginx)
- Chapter 6 : Running Python Applications in Docker
- Chapter 7 : Running Node.js Applications in Docker
- Chapter 8 : Running MongoDB Containers
-
Chapter 9 : Communication Between Containers and Environment Variables (MySQL, phpMyAdmin)
- Starting WordPress Container
- Plan for the Next Lectures - Networks and Environment Variables
- Default Bridge Network and Communication Between Containers
- Exploring Environment Variables
- Starting MySQL Container with env Variable
- Launching Another phpMyAdmin Container
- Connecting phpMyAdmin to MySQL Container
- Making Notes of the Commands
-
Chapter 10 : Default and Custom Bridge Networks in Docker (WordPress, MySQL)
- Communication Using Hostnames in the Default Bridge Network
- Inspecting Default Bridge Network
- Creating New Custom Bridge Network
- Creating Busybox Containers in the Custom Network
- Using Custom Persistent Names for Connectivity in the Custom Network
- MySQL and phpMyAdmin in the Custom Network
- Challenge: WordPress with MySQL and phpMyAdmin
- Challenge Solution: WordPress with MySQL and phpMyAdmin - Part 1
- Challenge Solution: WordPress with MySQL and phpMyAdmin - Part 2
- Summary for the WordPress and MySQL Setup
-
Chapter 11 : Additional Containers – Elasticsearch, Redis, Httpd
- Getting Docker Image with Curl Utility
- Challenge: Run Elasticsearch and Curl Containers in the Custom Network
- Challenge Solution: Run Elasticsearch and Curl Containers in the Custom Network
- Inserting Documents into Elasticsearch Index
- Starting Redis Container
- Challenge: Redis and Redis-Commander
- Challenge Solution: Redis and Redis-Commander
- Launching Httpd Container
- Chapter 12 : Docker on Practice Summary and Introduction to the Docker Fundamentals
-
Chapter 13 : What is Docker and Docker Components
- Virtual Machines Versus Docker Containers
- Virtual Machines Architecture
- How I Use Virtual Machines
- My Computer Just Ran Out of Memory
- Docker Containers Architecture
- How Docker is Running on Different Operating Systems
- Container Processes and Resources
- Docker Components: Overview
- Docker Client
- Docker Server
- Docker Host
- Docker Image
- Docker Container
- Docker Repository
- Docker Registry
- Docker Components: Summary
-
Chapter 14 : Introduction to the Images and Containers
- Docker Commands Versus Management Commands
- Alternative Commands
- Basic Container and Images Commands
- Cleaning Up My Docker Setup
- Pulling Images from Docker Hub
- What is Docker Image
- Creating New Container from the Image
- What is CMD in the Docker Image
- What is Docker Container
- Summary for the Introduction to Images and Containers
-
Chapter 15 : Getting Started with Linux
- Why You Need to Know Linux while Studying Docker
- Introduction to the Linux Section
- Possible Options to Use Linux on macOS and Windows
- Creating Linux Container Using Docker
- What is Shell, Terminal, and Command
- Getting Information about Linux Computer
- How Shell Understands that You Have Entered a Command
- Getting Help about Commands Using Man Utility
- Command Options
- Command Arguments
- Arguments for Options
- Chapter 16 : Processes in Linux
- Chapter 17 : Data Streams and Piping in Linux
-
Chapter 18 : Files and Directories Management in Linux
- Introduction to Files and Directories Management
- Linux File System Structure and Navigation
- Listing Files and Directories
- Exploring Subdirectories of the Root Directory
- Creating and Removing Directories and Files
- Creating New Files
- Editing Files Using Vim and Nano Editors
- Copy and Move Files and Directories
- Reading Files
- Filtering Text Using the grep Command
- Soft Versus Hard Links
- Creating Hard and Soft Links
- Chapter 19 : Search Operations in Linux
- Chapter 20 : Compressing and Sorting in Linux
- Chapter 21 : User Management and Permissions in Linux
- Chapter 22 : Executable Files and Scripting in Linux
- Chapter 23 : Networking in Linux
- Chapter 24 : Environment Variables in Linux
-
Chapter 25 : Launching Course Project Application without Docker
- Introduction to the Dockerfiles and Docker Compose
- Cloning Remote Docker Repository with Project Files
- Project Overview
- Getting Unsplash API Key
- Installing Node.js and NPM
- Installing Python, Pip, and Pipenv on macOS
- Installing Python, Pip, and Pipenv on Windows
- Starting Frontend App Using NPM
- Starting API Application Using Python
- Verifying How Images Gallery Project Works
- Summary for Start of the App without Docker
-
Chapter 26 : Building Custom Images Using Dockerfiles
- Initializing Git and GitHub for the Project
- Installing Docker and Hello-World Using Docker
- Creating Dockerfile for the Python API Service
- Building Docker Image for the API Service
- Running API Containers Based on the Built Docker Image
- Analyzing API Docker Container from Inside
- Docker Image for the API Service: Summary
- Creating Dockerfile for the Frontend Application
- Building Docker Image for the Frontend App
- Running Docker Container for the Frontend Service
- Exploring Frontend Container from Inside
- Why You Need to Have the node_modules Folder and Python venv Folders Locally
- Running Both Frontend and API Containers in Background
-
Chapter 27 : Launching Multiple Services Using Docker Compose
- Creating a Basic docker-compose File
- Bringing Up Both Containers Using docker-compose
- How to Operate Containers Using docker-compose
- Creating Volumes Mapping for the Frontend Service
- Fix Volumes Sync in the React Container
- Enabling Volumes Mapping for the API Service
- Enabling auto-restart and docker-compose Summary for API and Frontend
- Why Do We Need Mongo and mongo-express Services
- Mongo and mongo-express Official Docker Images Overview
- Adding Mongo and mongo-express Services to the docker-compose File
- Starting All Services Including Mongo and mongo-express Using docker-compose
-
Chapter 28 : Exploring Docker Compose Setup
- Docker Desktop Overview
- Using Mongo Shell and mongo-express GUI
- MongoDB Data is Now Deleted after docker-compose Restart
- Configuring Persistent Data Volume for the Mongo Container
- Verifying Persistent MongoDB Storage Using Volume
- Mongo and mongo-express Setup Summary
- How docker-compose Containers Communicate with Each Other
- Exploring Networking Between Docker Containers
- Chapter 29 : Course Summary
Product information
- Title: The Complete Practical Docker Guide
- Author(s):
- Release date: December 2021
- Publisher(s): Packt Publishing
- ISBN: 9781803247892
You might also like
book
Docker: Up & Running, 3rd Edition
Docker and Linux containers have fundamentally changed the way that organizations develop, deliver, and run software …
video
Docker for the Absolute Beginner - Hands-On
Docker is an open platform for developers and sysadmins to build, deploy, and run distributed applications …
video
Docker, Dockerfile, and Docker-Compose (2020 Ready!)
If you have never worked with containerization before or you need a quick refresher on the …
video
Kubernetes and Docker: The Container Masterclass
Containers are empowering businesses to scale fearlessly and manage their web applications hassle-free. They are the …