Docker
Docker is a platform for developing, shipping, and running applications in isolated environments called containers. Containers package an application and its dependencies together, ensuring consistency across different computing environments (development, testing, production, etc.). This series of tutorials provides a comprehensive introduction to Docker, covering everything from basic concepts to advanced deployment and automation techniques.
Docker simplifies application deployment and management by leveraging containerization. This allows developers to:
- Ensure Consistency: Applications behave the same way regardless of the underlying infrastructure.
- Improve Portability: Easily move applications between different environments (local machines, cloud providers, on-premises servers).
- Increase Efficiency: Containers share the host operating system's kernel, making them lightweight and resource-efficient compared to virtual machines.
- Enhance Scalability: Quickly deploy and scale applications by creating multiple container instances.
- Isolate Applications: Provides isolation for each and every application.
The contributors who helped to create the outline, transcribe, code and record the tutorials are Aditya Kushwaha, Karthik Chandrasekhar and Pranjal Mahajan under the guidance of Dr.T. Subbulakshmi from VIT Chennai. The Spoken Tutorial Effort for Docker is being contributed by Ms. Nirmala Venkat and Ms. Madhuri Ganapathi from Spoken Tutorial project, IIT Bombay.
Contents
[hide]Basic Level
1. Overview of Docker
- About Docker
- Advantages of using Docker
- Who can use Docker?
- Glimpse of Basic level Spoken Tutorials available on Docker Series
- Glimpse of Intermediate level Spoken Tutorials available on Docker Series
- Glimpse of Advance level Spoken Tutorials available on Docker Series
- About Spoken Tutorial
2. Basics of Images and Containers
- Introduction to containers
- Introduction to images
- Process of downloading and running the mongodb image
- Docker Official images on Docker Hub
- Searching for a package on Docker Hub
- Pulling mongodb image from Docker Hub
- Running mongodb image
- Viewing status of a container
- Connecting to the mongodb container using mongosh
- Starting and stopping a container
- Removing a container
3.Docker Compose
- About Docker Compose
- About YAML
- Process of using Docker compose
- Description of the application
- Services in Docker Compose
- Explanation of Docker Compose code for mongodb service
- Explanation of Docker Compose code for express service
- Using the docker compose command to run the containers using the Docker Compose file
- Checking the status of the web server using docker logs command
- Inserting data into the mongodb database using mongosh
- Viewing inserted data in web browser
4. Building Docker Images
- Building Docker images steps
- Setting up Dockerfile and application code files
- Understanding commands in the code files
- Building image on Dockerfile
- Running the built image
- Tagging the Image for Docker Hub
- Pushing the image to Docker Hub
- Pulling the image back from Docker Hub
- Image layers
- Image size optimization
Intermediate Level
1.Automating Docker Builds
- Overview of use and functionality of GitHub Actions
- Install Git and create a GitHub repository for the code files
- Explanation of flow of the tutorial through flowchart
- Description of source code files
- Overview of GitHub repository
- Generation of access token in Docker Hub
- Setting GitHub Secrets and Variables
- Creating a workflow in GitHub Actions
- Description of YAML code for automation of Docker builds in GitHub Actions
- Demonstration of working of the workflow
- Pull and test the built images
2.Docker Security
- About Security in Docker
- Securing Docker Hosts
- Managing user privileges
- Securing Docker Daemons
- Limiting Resource usage for containers
- Docker Content Trust
- Adding Signer and Image Signing
- Security Scanning for Docker Images
- Security Scanning using Docker Scout
- Security Scanning using Trivy
3.Docker Swarm
- About Docker Swarm
- Steps to Docker machine installation
- Initiating Docker Swarm Cluster
- Creating worker nodes
- Managing a Docker Swarm Cluster
- Deploying Services in a Swarm Cluster
- Service Updates and Rollbacks
- Scaling Services Dynamically
- Sharing files using Network File System
- Leave swarm cluster
4. Docker Networking
- About Docker networking
- Types of Docker networks
- Bridge Network Demonstration
- Create a docker network
- Start a container as client and connect it to the network
- Add another container as server
- Check the connectivity between containers
- About exposing ports
- Remove a network
- Delete a created network
Advance Level
1. Advanced Docker
- Write a Dockerfile for python automation environment configurations
- Create the required files for the demonstration
- Explain the various configuration of the Dockerfile
- Build the Docker image using the Dockerfile
- Verify the created docker image
- Run the container using the created image
- Test the docker image running with a python file
- Test the Python automation file checker.py
- Test the Python automation file chatbot.py
- Featured of docker images