
Learn how hypervisors enable virtualization by creating virtual machines on bare metal servers. Compare type one hardware hypervisors with type two software hypervisors and note examples like ESXi, Xen, Hyper-V.
Explore the limitations of virtual machines, including time-consuming provisioning and non-dynamic resource allocation, and see how containers offer faster spawns, automatic scaling, and better resource use.
Containers are isolated processes on a host that virtualize the operating system with kernel namespaces and cgroups, delivering lightweight, portable environments. Docker simplifies creating and managing them.
Learn what Docker is, why to use it, and key tools—Docker Engine, Docker Desktop, Docker Compose, Docker Swarm, and Kubernetes—for creating containers, building images, and deploying apps.
Compare docker engine and docker desktop to reveal the differences between community edition and enterprise edition, open source licensing, hypervisor requirements, kubernetes support, and ideal uses for servers and developers.
Identify Linux system requirements for Docker Engine installation, including Ubuntu 18/20/22 LTS, supported architectures, and uninstalling older Docker packages before installing via repository, manual, or script.
Install docker engine on a virtual machine using Oracle VirtualBox and Ubuntu 22.04 LTS server edition, with dynamic disk allocation and RAM and CPU sizing.
Learn how to install Docker Engine on Ubuntu using the package manager, including prerequisites, adding the Docker repository, updating apt, and installing docker-ce, docker-ce-cli, containerd, and the compose plugin.
Install Docker Engine on Ubuntu using a conventional script, auto-configure APT repositories, install prerequisites, and verify with docker --version for quick, script-driven deployment.
Verify docker installation with dpkg and key packages, review docker version and server info, and enable a normal user to run docker commands by joining the docker group and rebooting.
Explore how Docker containers rely on Linux namespaces and cgroups with a union file system, and how the Docker engine, images, and CLI enable container creation and management.
Pull the official nginx image from docker hub (latest by default) and create a detached container with docker container run -d nginx to run nginx.
Explore docker run options like -d, -t, and --name for nginx container, verify with docker ps and inspect, and learn to stop, remove, or force remove containers.
Learn to deploy a MySQL database on Docker by pulling the official image, configuring root password and environment variables, creating a container, and verifying connectivity with the MySQL client.
Explain the docker engine container creation workflow from cli to a container, detailing how the daemon, containerd, and runc download images, create an OCI bundle, and apply namespaces and cgroups.
Configure a bridge adapter for the docker host to obtain an IP from router, and set a static Ubuntu IP with netplan 192.168.1.40/24, gateway 192.168.1.1, and DNS 8.8.8.8 and 8.8.4.4.
Learn to access applications running inside Docker Engine from outside the Docker host by configuring port forwarding on the docker0 bridge, mapping private IPs to host ports.
Demonstrates accessing apps on a docker host from outside by creating nginx and apache containers with port forwarding, testing connectivity with curl, and understanding host to container port mapping.
Docker container restart policy controls automatic restarts: no, always, on-failure with max retries, and unless stopped; set at creation or later, applies after the container runs 10 seconds.
Understand docker container restart policies—never, always, on-failure, and unless-stopped—and how to apply or update them to auto-start containers after boot or failures.
Learn to deploy a two-tier WordPress and MySQL application on Docker Engine, including setting up a Docker host, bridge network, and port forwarding to access the WordPress dashboard.
deploy Jenkins CI/CD on Docker engine, access via port forwarding 8080 to 8090, discover open source advantages, plugins including GitHub, and build pipelines with Groovy DSL in a master/slave setup.
Deploy a Jenkins CI/CD workflow on Docker Engine using the LTS image, run a container, and complete setup with the initial admin password and plugin installation.
Use the --rm option to delete the container after exit, and log in with -t and -i for interactive shell or run commands via docker container exec without logging in.
Discover the difference between Docker container run and create. Run starts the container immediately, while create sets it up without starting; you start created containers with Docker container start.
Explore how Docker images are built from read-only layers and form the base for containers. Explain copy-on-write, read-write container layer, and how Docker Hub, official images, and registries control access.
Search Docker Hub for official images and verified publishers, then examine how images are built from read-only layers using docker image history to inspect each layer and size.
Search Docker Hub to find images, prioritizing Docker Official Images and verified publishers, then pull and inspect layers with docker image history to understand tags and read-only layers.
Understand how disk space is occupied by containers and images on the Docker host. Learn about image and container size, read-only and writable layers, and practical commands to view usage.
Create a Docker Hub account and sign in, register with username, email, and password; verify email, understand free plan limits, and authenticate to pull private images, with pricing options.
Explore the Docker image pull workflow from a Docker host: the daemon checks local images, authenticates to Docker Hub for private images, and stores the pulled image before container creation.
Learn to pull and push images from Docker Hub, including public and private images, using docker image pull, docker login, and tagging, with verification via docker image ls.
Learn how to push a Docker image to multiple Docker Hub accounts by tagging the image for different repositories, authenticating, and pushing to each account.
Learn to build custom images with a Dockerfile, understand key commands and parameters, and automate multi-environment image builds using CI tools.
Use the from parameter to define a base image in a dockerfile, such as ubuntu 20.04 or alpine, and build images with docker image build, using tags from Docker Hub.
Learn how Dockerfile maintainer details and run parameters shape image builds, explore shell and exec forms, and master caching versus no-cache for efficient, repeatable builds.
Learn how to use env and label in Dockerfile to embed environment variables and image metadata, override values at container run, and follow best practices to avoid security risks.
Learn how to use arg and expose in dockerfile, distinguish argument from environment variables, and expose ports to enable build-time configuration and port forwarding.
Understand when to use Dockerfile COPY versus ADD, including --chown ownership in Linux containers. Buildkit’s --link can reduce image size, while ADD can download and extract archives, which COPY cannot.
Explore how Dockerfile ENTRYPOINT and CMD work together to run applications, pass arguments, override defaults with docker run, and choose shell format and exit format.
Learn how Dockerfile shell and workdir parameters control command shells and working directories in containers, with practical examples using Linux and Windows, absolute and relative paths, and multiple workdir steps.
Configure stop signal and health check in Dockerfiles, using SIGKILL and other signals to terminate processes and monitor container health.
Explore how Dockerfile volume and user parameters enable dynamic volumes, persistent data, and non-root execution, with practical guidance on creating and using dynamic volumes and secure user settings.
Compare ubuntu and alpine base images for nginx deployments and learn how alpine can drastically reduce docker image size while maintaining functionality.
Explore Docker storage types, including volumes, bind mounts, and tmpfs, and learn how to persist container data beyond ephemeral lifecycles.
Explore how Docker volume mounts store data under the Docker root directory, create and inspect volumes, and bind them to multiple containers to persist and share content.
Run a Docker container with a volume mounted using the hyphen mount option, define type=volume, source as the volume name engine-x-data, and destination as /usr/share/nginx/html, ensuring data persists across containers.
Learn docker bind mounts using -v or --mount to attach an absolute host path to a container directory. Mounting an empty directory can affect in-container content.
Explore bind mount behavior in docker, contrasting the -v option that creates directories with the --mount bind that requires existing paths, and note source and destination usage.
Learn to deploy Jenkins on Docker Engine using Pinemont with a bind mount, addressing challenges, manual steps, host directory permissions, and port forwarding from 8090 to 8080 for external access.
Learn to deploy Jenkins using a bind mount, map a host Jenkins data directory, and fix permission issues by adjusting ownership to 1000:1000.
Learn how tmpfs mounts provide temporary, memory-backed storage in Docker on Linux, with contrasts to volume and bind mounts, and the behavior that data is lost when the container stops.
Explore docker volume mounts, bind mounts, and tmpfs mounts, including where volumes live in the Docker area, sharing across containers, and backup considerations on Linux.
Explore Docker network drivers, including bridge, host, none, overlay, ip vlan, mac vlan, and network plugins, and learn their use in real deployments.
Explore the Docker default bridge network, a predefined network that automatically assigns IPs from the bridge subnet, allows inter-container communication, and disallows fixed IPs.
Discover how to create and use a user defined bridge network in Docker, attach containers to it, enable cross-network communication with docker network connect and disconnect, and understand docker0 limitations.
Create a user defined bridge network without subnet or gateway to see how the Docker daemon assigns a default IP range, inspect the network, and prune unused custom networks.
Assign a specific IP to a Docker container using a user defined bridge network with a subnet and gateway. The default bridge network does not support fixed IP assignment.
Compare default and user defined bridge networks, learn on-the-fly attach/detach, and enable name or alias communication; configure subnet, gateway, DNS, and IP rules.
Explore docker host network, where a container shares the host's network stack and uses the host IP, enabling direct port access while risking port conflicts and security concerns.
Explore docker host network by using a container with --network host to share the host stack; note that the predefined host network exists and cannot be deleted.
This lecture explains the Docker host network, its default Linux availability, direct app access without port forwarding, and port-conflict considerations for dynamic port use.
Explore Docker none network behavior, where containers run with a loopback interface (127.0.0.1) and are inaccessible, and learn to switch to a bridge network by disconnecting and reconnecting the container.
Explore how a UI dashboard simplifies managing containerized platforms by configuring, deploying, and orchestrating containers from a centralized Portainer interface across Docker, Kubernetes, and more, with RBAC and SSO.
Portainer provides a single UI to manage Docker Engine, Docker Compose, Kubernetes, and other platforms across on-prem, cloud, and edge environments. It outlines community and business editions with pricing details.
Deploy Portainer Community Edition on Docker Engine by creating a data volume, running portainer-ce:latest, and binding the Docker socket for management, with an always restart policy and port mappings.
Open Portainer dashboard via port 9443 and accept the self-signed certificate. Set a 12-character administrator password and connect to Docker engine to view containers, images, networking, volumes, and host info.
Portainer connects to the Docker engine via a socket to manage environments from dashboard. Add environments such as Docker, Swarm, Kubernetes, or ACI with the environment wizard and configure registries.
Learn to manage containers with a dashboard: spin up nginx demo from docker hub, configure environment variables, volumes, networking, and restart policies, then inspect logs or exec into containers.
Learn to manage Docker images through pull and build, configure registries and authentication (Docker Hub, AWS ECR), and build custom images with Dockerfile and labels.
Explore creating custom templates, deploying stacks, and updating containers in Portainer using compose files, with hands-on steps for Jenkins, nginx, and port forwarding.
Assess the community edition limits of Portainer against business edition features like authentication logs, activity notifications, banners, registries, Kubernetes Helm repositories, and advanced user roles.
Discover why docker compose is needed to deploy multiple applications on a node, replacing imperative docker engine commands with a declarative yaml file that enables orchestration for ci cd pipelines.
Learn how docker compose uses a declarative yaml file to define multiple services, volumes, and environment settings, enabling isolated dev, qa, and prod environments with orchestration.
Discover Docker compose file parameters in YAML, including version, services, networking, volumes, secrets, and conflicts, to deploy and manage applications with specific networks and data storage.
Log into a docker engine virtual machine and learn that docker compose is a binary tool, and a plugin helps translate yaml to docker cli commands for orchestration.
Discover docker compose installation scenarios, including v1 deprecation and upgrading to compose v2. Learn when docker desktop or docker engine enable compose by default and when manual installation is needed.
Learn how to deploy an nginx web server with docker compose, including port forwarding, volume mounts, networking, and restart policies, then upgrade, test persistence, and clean up.
Build a custom image from a local dockerfile and deploy it with docker compose, using bind mounts and port mappings.
Build a custom nginx image from a local Dockerfile and deploy it with Docker Compose, exposing port 8090 to 80 and using bind mounts for content.
Explore using docker compose environment variables without hardcoding sensitive data. Learn map and array formats, env_file usage, and secrets handling with a WordPress example for secure ci/cd deployment.
Being a part of SDLC process, is not easy to manage, Because of DevOps culture and other source have been adopted by many of the Organizations in today IT industry.
We need to sustain in the IT domain by adopting those technology as a Developer, Administrator, DevOps, DevSecOps or SRE role.
In this course we are providing the hands-on labs and theoretical knowledge to understand how containers works with different tools like Docker Engine, Docker Compose and Kubernetes Orchestration to run different sort of applications like Webservers, databases, CICD, etc.,
1) Docker Engine: Architecture, Setup and Configuration, Containers, Images (Predefined and Custom), Storage, Network, etc.,
2) Docker Compose: Orchestration, YAML, resource management.
3) Kubernetes Orchestration: Architecture, Cluster Setup, Workloads, Configurations, Storage, Networking, Ingress Controller, etc.,
Though you are coming from different background like IT or non-IT domain, we need to understand containerization technology where this course helps you to understand from scratch.
After completion of this training program, you can even plan for basic level certification from Kubernetes like CKA (Certified Kubernetes Administrator).
This course will be a beginning step to learn containerization technology and from here you can handle any sort of application deployment or management as per Organization requirement.