Mastering Docker
Docker is the world’s leading software containerization platform. It packages your application into one standardised unit, wrapping it into a complete file system that contains everything needed to run on a server. Kubernetes is a system created by Google to automate the deployment, scaling and management of containerized applications (like the ones Docker creates). The two combined make life a breeze for anyone needing to transport, install and maintain complex software applications anywhere.
Course Objectives
This is a hands-on course is designed to teach you how to:
- Set up Docker engine, workstation
- Configure Docker engine
- Build and Manage Docker Images
- Bundle applications in Docker images
- Setup Docker Swarm cluster
- Run applications in Docker swarm cluster
- Run applications on Kubernetes cluster
Target Audience
- Full Stack Developers
- Anyone deploying containerized applications
- Site Reliability Engineers (SREs)
- DevOps Engineers
- Operations Engineers
Course Pre-Requisites
- No prior knowledge of the Docker /Containerization is required. This course is designed for individuals new to the Docker.
- Participants must be comfortable using the terminal or command line.
- Basic understanding of Linux/Unix OS.
Course Duration
- 32 Hours
- 16 Classes
- 2.00 Hours per Class
Fee | 8500/= |
Type | Online |
Module | 12 |
Duration | 32 Hours |
Session | 16 |
Per Class | 2.00 Hours |
Details Course Outlines
Module-01
Getting started with Docker
- What is Docker?
- What is the difference between VM and Containerization?
- Installing Docker
- Docker Architecture
- Docker Flow
- Download your first image
- Run your first container
- Terminology
- Working with Docker image
- Working with interactive container
Module-02
Handling Docker Containers
- Controlling Docker ContainerDetach Docker
- Container Lifecycle
- Housekeeping commands
- Docker's integrated image building system
- Docker logs
Module-03
Building images
- Docker's integrated image building system
- A quick overview of the Dockerfile's syntax
- Dockerfile build instructions
- How to remove images
- How to remove containers
- Best practices for writing Dockerfiles and Multi-Stage Builds
Module-04
Publishing image
- Understanding the Docker Hub
- How to push images to the Docker Hub
- Automatic building of images
- Private repositories on the Docker Hub
- Creating organizations on the Docker Hub
Module-05
Running your private Docker infrastructure
- The Docker registry and index
- Docker registry use cases
- Run your own index and registry
- Push the image to a newly created registry
Module-06
Running services in a container
- Overview of container networkingUser-Defined Networks
- Envisaging Container as a Service (CaaS)
- Exposing container services
- Retrieving the container port
Module-07
Sharing data volumes
- Stateful versus Stateless Container/Services
- Docker Volumes and Stateful Persistence
- Volume’s Types
- Anonymous Volumes—Within Container’s scope
- Named Volumes—Outside Container’s scope
- Sharing volumes between containers
- Sharing volumes between host and container
- Running a PostgreSQL Container with a Volume
- Filesystem vs. Volume
Module-08
Orchestrating containers
- User-defined networks Orchestrating
- Example of docker-compose
Module-09
Testing with Docker
- What is CI/CD?
- Integrating Docker testing into Jenkins (CI/CD)
Module-10
Debugging containers
- Namespaces
- Process level isolation
- Network Namespace
- Mount Namespace
- Control groups
- Docker debugging commands
Module-11
Securing Docker containers
- Non-root privilege in DockerfileIs Docker secure?
- Best practices for container security
Module-12
Swarms
- Set up your cluster
- Scale your app to run on more nodes
- Distribute your app across a cluster
- Nodes Types and Load-balancing