Table of Content
Introduction to the Course
- Course Overview
Docker Installation
- Installing Docker Desktop on Mac
- Installing Docker Desktop on Windows
- Installing Docker Engine on Linux
Basic Docker Container (Ubuntu, Busybox, Alpine)
- Running Hello-World Container
- Running Ubuntu Container
- Running Busybox Container
- Alpine Versus Busybox Images
Port and Volume Mapping in the Docker Containers
- Running Nginx with Exposed Port
- Nginx Container with Custom Content
- Adding Favicon to the Project
- Using Path Variable in Volume Mapping
Docker Containers Management (Ubuntu, Nginx)
- Running Containers in Background
- Running Container with Pseudo TTY
- Creating Multiple Ubuntu Containers from the Same Image
- Running Multiple Nginx Servers
- Cleaning Up Stopped Containers
Running Python Applications in Docker
- Creating Python Containers
- Simple Python Program
- Challenge: Simple Python Calendar App
- Challenge Solution: Simple Python Calendar App
Running Node.js Applications in Docker
- Running Node.js Containers
- Hello World Application with Node
- Express Web Server Using Node
- Add Handling of the SIGINT and SIGTERM Signals
- Challenge: Create Files Handling Node App
- Challenge Solution: Create Files Handling Node App
- Conclusion - Containers can Create and Modify External Files
Running MongoDB Containers
- Pulling Mongo Image and Creating the First Mongo Container
- Starting Additional Processes in the Running Container
- What is Entry Point and Where is it Located
- Creating New Mongo Database Using Mongo Shell
- Running Mongo Container with Persistent Database
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
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
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
Docker on Practice Summary and Introduction to the Docker Fundamentals
- Docker Fundamentals Practical Section Summary
- Introduction to the Docker Fundamentals
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
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
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
Processes in Linux
- What Are Processes
- List Running Processes
- Starting Additional Processes and Killing Processes
- Installing htop Package Using apt-get
- Using the htop Utility
- Summary for Processes Monitoring
Data Streams and Piping in Linux
- Data Streams of the Process
- Redirecting STDOUT and STDERR to the File
- Where Process Data Streams Send Data by Default
- How to Send Data to STDIN and Redirect STDOUT and STDERR
- Piping
- Summary for Data Streams and Piping
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
Search Operations in Linux
- Introduction to the Find Command
- Searching Files Using the Find Command
- Some Other Examples of the Find Command
- Executing Additional Commands Inside of the Find Operation
- Xargs Command
- Piping Results of the Find Command to the Other Command Using Xargs
Compressing and Sorting in Linux
- Overview of the tar and gzip Utilities
- Creating and Extracting Compressed Archive Using tar and gzip
- Sorting Files Using Ls Command
- Sorting Contents of the Files Using Sort Utility
User Management and Permissions in Linux
- Introduction to the User Management in Linux
- Creating Users Using useradd Command
- Creating New User Using adduser Command
- Changing Ownership of the File
- Changing Permissions
Executable Files and Scripting in Linux
- Creating Executable Script
- Adding Path to the Scripts into the PATH Variable
- Summary for Users, Permissions, and Scripts
Networking in Linux
- Introduction to the Linux Networking
- Exploring IP address settings
- Verifying Connectivity with Remote Servers
- Enabling SSH on the Linux Server
- Connecting to the Linux Server Remotely Via SSH
- Using curl and wget Utilities
Environment Variables in Linux
- Environment Variables
- SOLUTION - Script with Environment Variables Access
- Linux: Summary
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
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
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
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
https://www.vskills.in/certification/cloud-computing/docker-certification