
Explore how Docker packages apps into portable containers with consistent environments. Learn the workflow from Dockerfile to docker build and run, using images and Docker Hub.
Start this course without any Docker or programming experience. Use a computer with internet, a PowerShell or Mac terminal, and a code editor such as Visual Studio Code or Sublime.
Explore how Docker uses images and containers to deploy apps consistently across testing and production environments, replacing heavy configurations and virtual machines.
Explore how container runtimes use docker run to initialize containers, including mounting directories, namespaces via unshare, cgroups, Linux capabilities, and launching apps with ports, volumes, and env vars.
Discover how containers isolate processes through eight namespaces and kernel control groups that regulate resources like memory, network bandwidth, and cpu, while noting Linux and Windows image constraints.
Use SQL Server Configuration Manager to view SQL Server 2022 status, manage services (start, pause, stop, restart), and set start modes, logon accounts, and pin to the taskbar for access.
Master docker engine builds, runs, and manages containers with a rest-based api, command line tool, and dockerfile, using Containerd as runtime and forming the foundation for containerization and portable deployments.
Docker Desktop streamlines creating, running, and managing containers on your machine with a GUI and CLI, offering image management, Kubernetes, volumes, networks, Visual Studio Code integration, and Docker Compose.
Download and install docker desktop for windows, then restart and sign in; personal usage is free. Verify setup with docker commands and run hello world to see the engine.
Install Docker Desktop on Mac by downloading the Mac version from docker.com (Intel chip or Apple chip), open the DMG, and drag it to the Applications folder to complete installation.
Explore alternatives to docker desktop for cost efficiency and remote use. Learn to install docker via Windows subsystem for linux (WSL) and a linux distribution for greater control.
Enable Windows Subsystem for Linux, update WSL, launch PowerShell in administrator mode, install Ubuntu, and create a default Unix user, preparing to install Docker within WSL.
Install docker in WSL Ubuntu using the get.docker.io script, configure permissions, start the docker service, and verify with docker ps and docker run hello-world.
Learn to install Docker on Mac the hard way using Lima, Homebrew, and a Docker YAML template to run containers.
Portainer's open source GUI visualizes containers, using the community edition to install the server, create the data volume, and run Portainer to manage Docker locally.
Explore how container images package applications with dependencies in a portable, immutable, layered archive, and how registries, Dockerfile instructions, and writable runtime layers enable reproducible containers across diverse environments.
Explore docker hub and the hello world image, pull it, and save it as a file. Inspect the saved image to learn about manifest.json, layers, repo tags, architecture, and OS.
Explore how Docker storage drivers manage image and container filesystem layers using a union file system. Learn why overlay two delivers efficient layering, copy-on-write behavior, and caching for performance.
Configure docker to enable debug logging by creating daemon.json with debug true, restarting the docker service, and using journalctl to observe verbose logs during docker run and docker pull.
Learn how to create container images using dockerfiles, including base image, working directory, copy and run commands, and exposing port 80 to run python app.py.
Explore the from command in a Dockerfile, which defines the base image, supports tags or latest, and enables named build stages for multi-stage builds to optimize the final image size.
Build your first docker image with docker buildx, replacing the deprecated build command, by building from the current directory and verifying the ubuntu base image with docker image ls.
Master the copy command to stage application code, configuration files, and assets into Docker images from the build context using various formats, including JSON array and chown options.
Update the image by creating a working app directory, copying files with the dockerfile, building the image, and running it to inspect the resulting container.
Explore the run command in a Dockerfile to install curl with apt update and apt install, while learning about image layers and shell versus exec form.
Set the container's default startup with the Entrypoint instruction to enforce a primary command, explore JSON array vs shell form, and understand why Entrypoint cannot be overridden at runtime.
Learn how CMD passes default arguments to the entry point, how extra command-line arguments override CMD, and how to build and run a docker image to see argument counts.
Learn to make Dockerfiles dynamic by using ENV and ARG to customize builds, control curl versions, and separate build-time from runtime variables.
Explore practical dockerfile commands, including labeling with key-value pairs and multiple labels, quoting rules, exposing and publishing ports, and setting the default user and work directory.
Learn how multi-stage builds shrink Docker images by separating base and runtime stages, reducing from about 128 MB to around 2.5–3.7 MB while ensuring cpu architecture compatibility.
Explore the Docker command line interface, learn essential commands like run, build, and push, discover management and swarm commands, and master how to use docker help for usage details.
Create a docker container from image with docker container create, pulling from Docker Hub or a docker file, then start, attach, and view output with docker ps and docker logs.
Create a docker container from a dockerfile by building an Ubuntu-based image, copying app files, installing curl, and using an entrypoint and cmd; run with docker run --rm.
Explore saving container data with a volume mount that maps an outside directory to an inside path, ensuring the directory exists to persist data after the container exits.
Log in to Docker Hub, tag images with your namespace and version, then push with docker push to publish public images; manage visibility and pull with docker pull.
Learn to set container limits in Docker with cpu and memory flags, including cpu period and quota, to fine-tune resource utilization and meet deployment constraints.
Explore docker logging drivers, configure log options with max-size and max-file, and route container logs to json file, syslog, journald, fluentd, Graylog, or CloudWatch.
Configure the Docker daemon to manage containers, images, networks, and storage, using daemon.json or the docker d command, and verify defaults with docker info.
Explore Docker in Docker, where a Docker daemon runs inside a container to enable isolated, disposable environments for testing, CI/CD pipelines, and reproducible builds.
Discover Docker in Docker with Unix socket bind mounting to expose the Docker engine inside a container, enabling interactive sessions, host file access, and inspecting containers via curl.
Install the docker client and engine with curl to bash, run docker run --rm on a demo image, and verify with docker ps to show docker in docker.
Explore docker bridge networks and how containers on the same host communicate, inspect the bridge, and connect containers across networks using docker network connect.
Expose container ports between containers by creating network A, mapping host port 8080 to container 80, and testing connectivity with netcat and telnet.
Learn how to disable external network connectivity in a docker container using the none driver (--net=none), isolating external communication while preserving loopback networking.
"Mastering Docker: Containerization for Developers and DevOps" is your gateway to mastering Docker's fundamentals and advanced containerization strategies. Dive deep into Docker and learn to streamline application deployment, enhance development workflows, and accelerate your career in DevOps.
In this hands-on course, you'll embark on a journey from Docker basics to advanced techniques, all designed to empower developers and DevOps engineers. Whether you're looking to package applications effectively, simplify development environments, or optimize deployment strategies, this course has you covered.
Course Highlights:
Docker Fundamentals: Build a strong foundation with Docker essentials, including containers, images, and Dockerfile creation.
Efficient Deployment: Learn to containerize applications and deploy them consistently across various environments.
Container Networking: Explore container networking solutions to ensure seamless communication between services.
Docker Compose Mastery: Harness the power of Docker Compose to simplify multi-container application deployment and orchestration, including .NET application deployment.
Security Best Practices: Safeguard your containers and data with industry-leading security measures.
Real-world Projects: Apply your skills to real-world projects, including deploying a .NET application using Docker Compose.
Multi-platform Support: Discover how Docker enables multi-platform compatibility, making your applications work seamlessly across different architectures.
Performance Optimization: Fine-tune your Docker setup for optimal performance and resource utilization.
Troubleshooting: Develop troubleshooting skills to diagnose and resolve container-related issues efficiently.
Docker Desktop: Explore Docker Desktop, a tool that simplifies Docker development on your local machine.
AWS Integration: Learn how to push Docker images to AWS Elastic Container Registry (ECR) and deploy containers to AWS Elastic Container Service (ECS).
By the end of this course, you'll be equipped with the expertise to leverage Docker's full potential, from simplifying development environments to orchestrating multi-container applications with Docker Compose.
Join us and become a Docker pro in today's dynamic world of software development and DevOps.