
Learn how hypervisors create virtual machines on bare metal servers. Distinguish type one hardware hypervisors from type two software hypervisors, with production favoring type one.
examine the limitations of virtual machines, including time-consuming provisioning and non-dynamic resource allocation, and compare with containers that auto-scale cpu and memory and maximize per-host density.
Define containers as isolated processes using kernel namespaces and cgroups. Explain how they virtualize the operating system and run with libraries and binaries; Docker standardizes management.
Explore how Docker Engine enables building, running, and orchestrating containers across platforms, and learn about Docker Desktop, Docker Compose, and the DevOps cycle.
Explore the difference between Docker Engine and Docker Desktop, highlighting Engine as open source server tooling for production, versus Desktop as a GUI, Kubernetes-enabled, subscription bundle for developers.
Install Docker engine on Linux using one of three methods—repository with apt, manual deb package, or a shell script—on Ubuntu 22.04 LTS with 2 GB RAM, one core.
Install Oracle VirtualBox and create a Ubuntu 22.04 server virtual machine. Configure disk, memory, and user credentials to prepare for installing Docker Engine Community Edition.
Install docker engine on ubuntu via the apt repository, install docker-ce, containerd, buildx, and compose plugin, then verify with systemctl status docker.
install Docker Engine on Ubuntu using a conventional script that configures apt, adds the repository and VPC key, and installs Docker Engine packages.
Explore docker default parameters by verifying installation with dpkg, confirming packages (docker-ce, docker-ce-cli, containerd, docker-compose-plugin), and checking the docker version and server and client details.
Discover how Docker containers are built and managed: from Docker images and registries to containers, CLI commands, and the Docker daemon using namespaces, cgroups, and union file systems.
Learn to pull the official nginx image from Docker Hub, create a detached container, and verify it runs on port 80 with an internal docker network IP.
Learn to run and customize nginx containers with docker run options, manage container life cycles (stop, remove, force), inspect metadata, and execute commands inside containers to verify networking.
Deploy a MySQL relational database on Docker by using the official image, selecting a tag, and configuring MYSQL_ROOT_PASSWORD to run and connect via the host on port 3306.
Demonstrates the Docker engine container creation workflow from cli to daemon, image download, rest and gRPC, containerd, OCI bundle, runc, and kernel namespaces with cgroups.
Configure a static IP on Ubuntu by using a bridge adapter in VirtualBox and Netplan with 192.168.1.40/24, gateway 192.168.1.1, and Google DNS for Docker Engine port forwarding.
Discover how to access dockerized apps from outside the docker host via port forwarding, mapping host ports to container ports through the docker zero interface.
Access Docker host applications from outside by port forwarding to host ports for Nginx and httpd, test with curl on the host IP, and observe container port isolation.
Explore Docker container restart policy, including no, always, on-failure, and unless-stopped, and learn how the Docker daemon restarts containers after exits, failures, or manual stops.
Explore Docker container restart policy, including never, always, on-failure, and unless-stopped, and learn how to update policies after creation and ensure containers restart on system reboot.
Deploy a two-tier WordPress and MySQL app on Docker Engine, starting with MySQL, then WordPress, and use port forwarding (host:8090 to container:80) to access WordPress via a bridge network.
Deploy a WordPress site with a MySQL database on Docker Engine by running MySQL and WordPress containers, configuring environment variables, and enabling port forwarding.
Demonstrates resource cleanup after deploying WordPress and MySQL on Docker Engine. Remove the WordPress and MySQL containers and verify cleanup, while leaving images intact to save bandwidth.
Deploy Jenkins CI CD on Docker Engine, connect master–slave with port 50,000, use port forwarding 8080 to 8090, and build Groovy pipelines or DSL with GitHub plugin.
Deploy a Jenkins ci cd application on Docker engine with the Jenkins/jenkins:lts image, mapping 8090 to 8080, then unlock Jenkins, install plugins, and create the initial admin user.
Learn to create and manage docker containers using rm and exec, login in interactive mode, run commands inside containers, and verify container status and lifecycle.
Compare Docker container create and run, showing how create builds a container without starting it, while run creates and starts the container immediately.
Docker images are bundles of read-only layers used to create containers with a read-write layer for changes, typically loaded from Docker Hub with public or private access.
Explore how to search Docker Hub for official, verified, and sponsored images, then inspect image layers, tags, and history with docker image history and docker pull.
Explore how docker images and containers occupy disk space on the host, detailing image size, container size, and virtual size as the image's read-only layer plus the container's writable layer.
Create a Docker Hub account, verify your email, and sign in; on a free trial you can have one private repository, and private images require CLI authentication to pull.
Pull images via the Docker daemon, check local cache, use Docker Hub when needed, with authentication for private images, and store the image on the host to create a container.
Pull and push docker images from docker hub, including latest tags and private images. Authenticate with docker login for private images and tag images before pushing to a registry.
Push the same image to multiple Docker Hub accounts by tagging and re-pushing, using docker image tag, docker login, and authentication to access each account.
Learn to build custom images with a Dockerfile, using commands like from, env, run, copy, and expose, and automate multi-environment builds with ci tools.
Explore the from parameter (and arg) in a Dockerfile to define a base image, then build and tag an ubuntu 20.04–based image with docker build.
Learn how to use the Dockerfile maintainer and run parameters, including shell and exec formats, and how to manage build cache with --no-cache for proper layers and tagging.
Learn how to use ENV to set container environment variables and LABEL to attach metadata to images, including best practices, persistence considerations, and differences between image and container level data.
Master Dockerfile arg and expose to manage build-time values and declare container ports, and distinguish arg from environment variables while learning port mapping with -p and -P.
Discover when to use copy versus add in Dockerfiles, apply chown ownership on Linux containers, and use add to download, unzip, or extract archives from URLs into image layers.
Explore Dockerfile basics by mastering entrypoint and cmd parameters. Learn how to combine them for flexible command execution, override defaults with docker run, and understand shell vs exec formats.
Explore Dockerfile shell and workdir parameters, use multiple shell parameters, and control execution directories with multiple workdir entries for run, cmd, entry point, add, or copy.
Learn how to use stop signal and health check in a Dockerfile, override stop signal at runtime, and verify container health with practical examples.
Learn how Dockerfile volume and user parameters create dynamic and static volumes, enable data persistence, and run containers as non-root for security.
Build and deploy a non-root nginx container on ubuntu 22.04 with a tailored docker image, dynamic volumes, port 8090, and custom index.html content.
Learn to shrink Docker images by choosing the right base image, comparing Alpine versus Ubuntu, and adjusting Dockerfile practices like apk add, user setup, and nginx configuration.
Explore docker storage types including volume mount, bind mount, and tmpfs mount, understanding ephemeral containers, docker root directory, and how to persist data with volumes, read-only options, and swarm considerations.
Explore how docker volume mounts work by creating and inspecting volumes in the docker root directory, then mount them to nginx containers and share data across multiple containers.
Learn to create and attach a volume with the hyphen mount option and the -v option to an nginx container, detailing type, source, destination, read-only, and swarm considerations.
Deploy Jenkins on Docker Engine using a volume mount to persist data and enable port forwarding for external access. Reuse the same volume to recreate containers and recover Jenkins data.
deploy Jenkins on Docker using a volume mount to persist data across container recreations; learn setup wizard, initial admin password retrieval, plugin installation, and how volumes preserve Jenkins data.
Explore bind mounts in Docker: mount an absolute host path into a container, create the host directory if needed, and observe how host data appears at /usr/share/nginx/html.
Learn how docker bind mounts differ: the -v option creates missing directories automatically, while the --mount option requires existing paths, demonstrated with an nginx example using /app-data.
Learn to deploy Jenkins on Docker Engine using bind mounts architecture, contrast with volume mode, and follow manual steps, permissions, and port forwarding to map host data and access 8080.
Explore a Jenkins deployment using a bind mount, mapping a host directory to /jenkins_home, and resolve permission denied errors by aligning host directory ownership to 1000:1000 for the Jenkins user.
Explore tmpfs mount in Docker Engine on Linux, storing temporary data in RAM inside a container that vanishes when it stops, with Swarm mount options.
Explore when to use Docker volume mounts, bind mounts, and tmpfs mounts, where volumes reside, how to share across containers, and backup considerations for Docker Swarm and Docker engine.
Explore storing application data on external nfs storage to withstand docker host failure, and attach Jenkins data via a jenkins_home directory over nfs version 4.
Implement a Docker volume mount using an NFS server to store data remotely, ensuring persistence even if the Docker host goes down, demonstrated with a Jenkins deployment.
Learn Docker network types, including bridge (default docker0), host, none, and overlay, and explore advanced topics like IP VLAN, MAC VLAN, and network plugins for cross-host connectivity.
Explore the Docker default bridge network by listing and inspecting it. See how containers receive IPs from the bridge subnet and communicate on the same bridge.
Explain how to create a user defined docker bridge network, compare it with docker zero, assign subnets and gateways, and enable cross-network communication via docker network connect.
Explore how Docker daemon assigns a default subnet and gateway for user-defined bridge networks when none are specified, inspect the resulting addresses, and prune unused custom networks safely.
Learn to assign a static IP address to a Docker container on a user defined bridge network using a subnet and gateway; default bridge networks do not support fixed IPs.
Remember that Docker creates a default bridge network and allows user defined bridges; containers on user defined networks communicate by name or alias, while the default bridge is not recommended.
Explore Docker host network, where a container shares the host's network stack, enabling direct access without port forwarding but risking port conflicts and limited isolation.
Explore docker host network, which shares the host network stack, requires no port forwarding, and explains port conflicts and troubleshooting on a predefined network.
The Docker host network is the default on Linux hosts, giving direct access to containers without port forwarding. Plan port usage carefully, as duplicate ports require recreating containers.
Explore Docker none network isolation, observe loopback interface and 127.0.0.1, connect containers to a bridge network by disconnecting from none, attaching to a bridge, and building images with required packages.
Learn docker network basics by running a none network container, test inside the container, then connect to a bridge network to obtain an IP and access the app.
Explore how Docker overlay networks enable cross-host container communication using vxlan tunneling and etcd storage. Configure a user-defined overlay network and verify connectivity across hosts.
Learn to implement a docker overlay network using etcd for high-availability storage across two docker hosts, without docker swarm, verifying cluster health and enabling cross-host container communication via vxlan.
Explore how docker overlay networks rely on etcd for storage, use vxlan tagging for inter-node communication, and the constraints when not using docker swarm, including port 2379 and 2380.
Relocate the Docker root directory by stopping the Docker daemon, copying /var/lib/docker to the new location, and configuring /etc/docker/daemon.json with data-root to the new path, then verify with Docker info.
migrate the docker root directory to a new location and verify containers remain intact by starting them after the daemon change, during a change window.
Change the default docker bridge cidr by configuring bip and optional default gateway, then restart the daemon and recreate containers to apply the new network, backing up data as needed.
learn how to set a custom linux bridge as default docker network by creating a bridge interface (wp net), assigning an ip, updating daemon.json with the bridge, and restarting docker.
Explore why Docker links are a legacy, deprecated option and how container communication by name works on user-defined bridge networks, using automatic DNS resolution instead of IP-based or manual links.
Explore how docker containers allocate CPU and memory on the host, monitor usage with docker container stats, and enforce limits with memory, CPU, and PID limits.
Explore a Kubernetes dashboard that configures, deploys, and manages containerized applications via a UI, using Portainer to centralize multi-environment Docker and Kubernetes management with RBAC and LDAP/SSO.
Portainer offers a single user interface to manage Docker Engine, Kubernetes, and other platforms, highlighting community versus business edition pricing and features such as registry support and role-based access control.
Deploy Portainer community edition on Docker Engine using the portainer-ce:latest image. Mount a /data volume, bind the Docker Engine socket, and set a restart policy to access the dashboard.
Access the Portainer dashboard over https using a self-signed certificate, set up an administrator with a 12-character password, and connect Portainer to the local Docker engine via the docker.sock.
Manage Portainer environments, including Docker engine, Swarm, Kubernetes, and ACI, using the Environment Wizard in Community Edition.
Explore managing containers from a dashboard: create and configure nginx containers, set image details, networking, volumes, environment variables, restart policies, and monitor with logs, inspect, and stats.
Master docker images, registries, and builds, from pulling public images on Docker Hub or authenticating with AWS ECR to building custom images from Dockerfiles.
Learn to create and deploy Docker compose templates and stacks in Portainer using custom templates, then update or delete stacks and verify containers and port mappings.
Explore what features the Portainer community edition lacks, including authentication logs, user activity, and configurable banners, and see how business edition adds registries, roles, permissions, and authentication and authorization controls.
Identify the challenges of docker engine for deploying multiple applications, including imperative deployment and environment differences. See how docker compose uses a declarative yaml file to streamline orchestration.
Demonstrate how Docker Compose defines and runs multiple services with a YAML file, enabling declarative orchestration, environment-specific overrides, and persistent volumes across dev and prod.
Explore Docker Compose file parameters in YAML, including version, services, networking, volumes, secrets, and configs, to deploy applications with secure handling of sensitive data.
Log in to a docker engine machine and learn how docker compose converts YAML to CLI, acting as an orchestration tool installed with docker engine.
Explore Docker Compose installation scenarios, including upgrading from v1 to v2 and using the Compose plugin with Docker Engine on Linux, Windows, and Mac.
Containerization technology provides flexibility to develop the application much faster and more secure manner as part of DevOps and DevSecOps culture adopted by many of the Organization in today IT industry.
We as VisualPath Team has come up with a course that simplifies the understanding of Containerization technology.
Containerization creates an OS level virtualization to save lot of resources consumption and run more application on a platform.
Docker tools helps initially to understand the core feature of Containerizing the application with Image build, Networking, Storage, etc.,
Docker provides tools like Docker Engine, Docker Desktop, Docker Compose, Docker Machine, and Docker Swarm.
Docker Engine helps to spin containers and run any sort of application (Nginx, MySQL, Hadoop, ML, etc.,) with predefined and Custom Images.
Kubernetes Orchestration tool helps to containers specific to application as POD workload to have common network and shared storage.
After Kubernetes developed with wide number of features, usage of Docker Swarm was suppressed by many of the Organizations to run application on a Cluster environment.
In this course of Kubernetes, we will be understanding the architecture, cluster setup and configuration, workloads, objects, networking, monitoring, storage, and many more...
We will be focusing on Docker Engine, Docker Compose (Orchestration tool to manage resources on Docker Engine), Kubernetes Cluster (On-premises), Monitoring, and Projects from each platform of different sort of applications like Wordpress, Jenkins, Node application.
Docker Engine CE (Community Edition) and Kubernetes Orchestration are open-source where we can install on our local machines and understand the features provided by those, where we will be focusing in the course all together.
The key principles of learning any technology is fundamentals and troubleshooting (through Monitoring services) to sustain for longer period in IT industry with new technologies.
After completion of the Course you can plan for Kubernetes certifications like CKA (Certified Kubernetes Administrator) and CKAD (Certified Kubernetes Application Developer)
Students Review:
Mudasir Bashir
This course on Docker and Kubernetes was excellent and very in-depth—highly recommended for anyone looking to build a solid foundation in containerization and orchestration. I would like to sincerely thank the trainer for the clear explanations and hands-on approach. My request to the trainer is to consider creating more advanced courses, particularly focusing on deployment using Helm, as it would be extremely valuable for practitioners in the DevOps space. Thanks again!
Shahed R
Master Docker & Kubernetes course is a great learning resource for anyone who wants A to Z understanding with hands-on experience. Anyone who wants to indulge and take a deep dive into containerization and its orchestration then this is the course to take. These videos are a true bang for your buck!
Deepak R
The Docker and Kubernetes course on Udemy is fantastic! The instructor explains concepts in-depth, making it easy to understand. Highly recommend for anyone wanting to learn these technologies