We may earn an affiliate commission when you visit our partners.
Course image
Stephen Grider

If you're tired of spinning your wheels learning how to deploy web applications, this is the course for you.

CI+CD Workflows? You will learn it. AWS Deployment? Included. Kubernetes in Production? Of course.

Read more

If you're tired of spinning your wheels learning how to deploy web applications, this is the course for you.

CI+CD Workflows? You will learn it. AWS Deployment? Included. Kubernetes in Production? Of course.

This is the ultimate course to learn how to deploy any web application you can possibly dream up. Docker and Kubernetes are the newest tech in the Dev Ops world, and have dramatically changed the flow of creating and deploying web apps. Docker is a technology that allows applications to run in constructs called 'containers', while Kubernetes allows for many different 'containers' to run in coordination.

Docker from Scratch.

In this course you'll learn Docker from absolute fundamentals, beginning by learning the answer to basic questions such as "What is a container?" and "How does a container work?". From the very first few lectures, we will do a deep dive on the inner workings of containers, so you get a core understanding of exactly how they are implemented. Once you understand what a container is, you'll learn how to work with them using basic Docker CLI commands. After that, you'll apply your new-found mastery of the Docker CLI to build your own custom images, effectively 'Dockerizing' your own personal applications.

CI + CD Pipelines

Of course, no course on Docker would be complete without a full understanding of common Continuous Integration and Continuous Deployment patterns. You will learn how to implement a full CI + CD workflow using Github, Travis CI, and Amazon Web Services, creating a pipeline that automatically deploys your code every time you push your latest changes to Github.

Multi-Container Deployments on AWS.

After building a deployment pipeline, you'll apply it to master both single-container and multi-container deployments on Amazon Web Services. You will construct a multi-container application utilizing Node, React, Redis, and Postgres, and see the amazing power of containers in action (Note: all Javascript coding in this course is optional, the full source code is provided if you don't want to write JS).

Kubernetes.

Finally, you will tackle Kubernetes, a production-grade system for managing complex applications with many different running containers. You will learn the right way to build a Kubernetes Cluster - this course doesn't have any of those annoying "don't do this in production" comments. You will first build a Kubernetes Cluster on your local machine, then eventually move it over to a cloud provider. You'll even learn how to set up HTTPS on Kubernetes, which is harder than it sounds.

Here's what you'll do:

  • Learn Docker from scratch, no previous experience required

  • Build your own custom images tailored to your applications

  • Master the Docker CLI to inspect and debug running containers

  • Understand how Docker works behind the scenes, and what a container is

  • Build a CI + CD pipeline from scratch with Github, Travis CI, and AWS

  • Automatically deploy your code when it is pushed to Github.

  • Build a complex multi-container application from scratch and deploy it to AWS

  • Understand the purpose and theory of Kubernetes

  • Deploy a production-ready Kubernetes Cluster to Google Cloud

Enroll now

What's inside

Learning objectives

  • Learn docker from scratch, no previous experience required
  • Master the docker cli to inspect and debug running containers
  • Build a ci + cd pipeline from scratch with github, travis ci, and aws
  • Understand the purpose and theory of kubernetes by building a complex app
  • Automatically deploy your code when it is pushed to github!

Syllabus

Dive Into Docker!
Finished Code and Diagrams
Join Our Community!

Dive into the core purpose of Docker: simplifying software installation and execution on various systems, including personal and cloud-based platforms. Explore the common challenges faced when installing software without Docker, and witness a live demonstration of the ease with which Docker allows for setting up an instance of Redis, an in-memory data store frequently used in this course.


Read more

Explore the core concepts of Docker, delving into the ecosystem encompassing various tools and software that facilitate creating and running containers. Grasp the distinction between a Docker image and a container, with an image as the packaged dependencies and configuration for a program, and a container as the instance of running that image, each with isolated system resources.


Learn to set up and use Docker for Windows or Docker for Mac, depending on the operating system. The session delves into the Docker client (Docker CLI) for interacting with Docker commands in the terminal and the Docker server (Docker daemon), which manages containers and images. Explore these essential Docker tools to enhance understanding of image and container manipulation.


Installing Docker on macOS
Installing Docker with WSL on Windows 10/11
Installing Docker on Linux

Explore the essentials of Docker's functionality by running the first Docker command, `Docker run hello-world`. Understand the process that occurs behind the scenes, including the use of Docker client and server, image caching, and interaction with Docker Hub. Learn the significance of container instantiation from an image and observe how subsequent runs are quicker due to local image caching.


Explore the fundamental concepts of containers by understanding the role of the operating system kernel, system calls, and how they interact with hardware resources. Delve into the mechanics of container creation through name spacing and control groups, and grasp how an operating system feature isolates resources for processes, essentially building what is known as a container. Learn how Docker images are transformed into running containers, completing the understanding of the containerization process.


Learn how Docker enables running containers on non-Linux operating systems like Windows and macOS through a Linux virtual machine. Understand the significance of name spacing and control groups in resource allocation, and discover how the Docker client interacts with the Linux kernel to manage container processes. Dive deeper into the internals of Docker in the next section.

Manipulating Containers with the Docker Client

Learn the basics of interacting with Docker containers and images using the Docker client or Docker CLI. Explore essential commands, including the `Docker run` command, to understand the process of creating and running containers from images. Delve into the mechanics of containers and the subtleties of the `run` command for a deeper comprehension of Docker's functionality.

Delve into advanced usage of the Docker Run command, focusing on overriding the default startup commands of Docker images. Learn the practical application by using the Busybox image to execute alternative commands like 'echo' and 'ls' inside containers, and understand the importance of an image's file system to these operations. Explore the limitations when using images without the required executables for certain commands.

Explore the `docker ps` command to list running containers on a machine. Learn how to use Docker to run and manage the lifecycle of a container, including starting a persistent `BusyBox` container with a `ping` command and observing its continuous output. Delve into the output details such as container ID, image, status, ports, and the randomly generated name of the container.

Understand the lifecycle of a Docker container by exploring the difference between creating and starting containers. The video examines the distinct commands `Docker create` and `Docker start`, explaining how they separately prepare the filesystem snapshot and execute the container's startup command. Additionally, uncover the functionality of attaching to container output with the `-a` flag in Docker start.

Explore container life cycles through Docker commands, understanding how to inspect container status using Docker PS, and learning to manage stopped containers. Delve into the process of starting and stopping containers, grasping the persistence of a container's default command across restarts, and highlighting why mastering container lifecycle is crucial for debugging and troubleshooting in Docker.

Learn how to free disk space by using `Docker system prune` to delete stopped containers and clear the build cache. Understand the implications of removing these items, including the need to re-download images from Docker Hub and how using the prune command can optimize your system when you're not actively working with Docker.

Gain an understanding of managing Docker containers, including creating and starting containers, as well as retrieving output without needing the `-a` flag using the `Docker logs` command. Learn how to inspect container output to aid in debugging and setting up new containers with `Docker logs`, providing a comprehensive way to view what has occurred within a stopped container.

Explore the nuances of managing Docker containers that persist in executing continuous commands, like the ping command. Learn the differences between 'Docker stop' and 'Docker kill' commands, discover how they signal the container processes, and understand the fallback mechanism Docker employs when a container does not shut down in a timely manner.

Explore the peculiarities of interacting with Redis when it's run as a Docker container. Dive into the normal usage of Redis with Redis CLI and compare it with the challenges faced when utilizing Redis CLI to connect with a Redis instance inside a Docker container, leading up to a discussion on executing commands within a running container.

Explore the use of the Docker exec command to execute additional commands inside an active Docker container, such as launching the Redis CLI within the Redis server container. Understand the significance of the '-IT' flag that enables keyboard input and the consequences of omitting it during command execution.

Deepen understanding of the '-it' flag used with Docker commands to interact with containers. Learn how this flag attaches a terminal session to the running process's standard input, output, and error streams in a Linux environment, which facilitates communication with tools like Redis CLI within Docker containers. Explore the effects of separating '-i' and '-t' to see how text formatting and terminal feedback changes.

Explore how to gain terminal access to a running Docker container without repetitive Docker exec commands. Learn to use the Docker exec command with the -it flag and 'sh' for shell access, allowing for convenient direct execution of Unix commands within the container, a crucial skill for effective Docker development and debugging.

Discover how to launch an interactive shell inside a Docker container using either the 'Docker exec' command for running containers or the 'Docker run' command for new containers. Learn the implications of starting a shell upon container initialization and explore container internals without running default processes. Understand when to use each method for investigating and managing Docker containers effectively.

Understand the isolation of Docker containers through hands-on demonstrations. Learn that containers do not automatically share file systems, contrary to some assumptions. Explore the independence of containers' data by creating files in separate container instances, showcasing the discrete nature of their storage and the clear boundaries set by Docker's namespacing feature.

Building Custom Images Through Docker Server

Discover how to build custom Docker images by crafting a Docker file with specific configurations to define container behavior, including the software it contains and its startup command. Learn the syntax and commands necessary to create personalized containers and images using the Docker CLI and Docker server for running applications.

Buildkit for Docker Desktop

Explore the creation of a custom Docker image by constructing a Dockerfile that will build a Redis server. The video outlines steps such as setting up a base image, installing dependencies, and defining startup commands in the Dockerfile. Then, witness the building and running of the new image through the terminal to solidify understanding of the Docker build process.

Explore the intricacies of Docker files by dissecting the structure and purpose of key instructions: FROM, RUN, and CMD. Learn how these instructions are the foundation for creating Docker images and how arguments following each instruction customize the image building process. Delve into the anatomy of Docker files for an understanding of image preparation and execution.

Explore the foundational principles of Dockerfile configuration, by examining the significance of base image selection using an analogy of installing an operating system to run Google Chrome. Understand the role of Alpine as an efficient starting point for crafting Docker images, due to its pre-installed package manager that simplifies installing and running applications like Redis.


Delve into the Docker build process, understanding the output seen when the build command is executed. Learn why the build command is used, the significance of the build context, and the correlation between Dockerfile instructions and the build steps. Examine the creation of intermediate containers, the impact of each command on the image, and how the final Docker image is assembled.

Recap the essential steps of creating a Docker image with a focus on the Alpine base image and Redis installation. Learn how the 'FROM' and 'RUN' directives form layers, use temporary containers for file system changes, and how the 'CMD' instruction defines container startup behavior within the Docker build process.

Explore how the Docker build process utilizes caching to enhance image-building performance. Delve into the sequence of generating images from Dockerfile instructions and how adding new commands affects the build. Learn why reordering operations impacts cache usage and how strategic Dockerfile modifications can minimize build times through examples of adding dependencies like GCC and Redis.

Learn to streamline Docker workflow by tagging custom images to easily reference them without memorizing image IDs. Explore the Docker build command's tagging option to assign memorable names and versions to images, following convention for better organization, and discover how to initiate a container using these custom tags in a practical Redis server example.

Quick Note for Windows Users

Delve into the advanced Docker concepts by exploring the bidirectional relationship between images and containers. Uncover how to manually create a container, modify its file system with commands such as APK add Redis, and ultimately generate a custom image for future use—mirroring the automated Dockerfile process. While not a recommended practice for production, it provides insight into the underlying mechanics of Docker image creation.

Making Real Projects with Docker

Advance understanding of Docker by creating a simple Node.js web application and encapsulating it within a Docker container for local access. Delve into authoring a Dockerfile, intentionally introducing common errors for educational purposes, with clear guidance on recognizing and resolving these issues to strengthen Docker proficiency.

Learn how to set up a Node.js web application with Express by creating a `package.json` file to define dependencies like Express, and writing an `index.js` file that contains server logic to handle a root route. The application will deliver a simple 'Hi there' message on port 8080. This lays the foundation for creating a Dockerfile in the next section.

Reminder on Buildkit

Explore the process of containerizing a Node.js web application with Docker, starting with the fundamentals of Node and npm commands. Learn how to craft a Dockerfile to specify a base image, install dependencies with npm install, and set npm start as the default command to run the server, while anticipating common error messages during the build.

Explore how to select appropriate base images in Docker to overcome common issues such as missing programs. This lesson demonstrates troubleshooting the "npm not found" error by choosing a Node.js pre-installed image from Docker Hub, specifically the Alpine version, for a leaner footprint in the Docker container environment.

Discover why the `package.json` file is not found during the Docker image build process and understand the segmentation of the file system within a Docker container. Learn how to configure the Dockerfile to ensure necessary files, like `package.json`, are accessible when executing NPM install commands within the container.

Learn to resolve issues with the npm install command by correctly utilizing the COPY instruction in Dockerfile to transfer the package.json file before installation. Explore the copy instruction syntax and its relation to the build context to successfully build and tag an image in Docker, then attempt to run a Node.js server from the created container.

Dive into troubleshooting Docker container networking issues by understanding port mapping and how to set it up correctly. Learn the essential distinction between incoming and outgoing traffic for Docker containers, and master the syntax for the `docker run -p` command to ensure the application responds to browser requests. Explore how to redirect traffic from a specific local port to a container port to overcome common networking pitfalls.

Explore the importance of avoiding conflicts with the container's default filesystem by using the WORKDIR instruction in Dockerfiles. This lesson covers debugging within a container, isolating project files in a non-root directory, and ensuring safe copying of files to prevent accidental overrides, using a Node.js application example.

Explore the limitations of Docker container updates by observing changes made to the source code and how they aren't reflected in the running container without a rebuild. Learn about the implications of Docker's caching mechanism on the build process and the unnecessary reinstallation of dependencies, laying the groundwork for more efficient container update strategies.

Optimize Docker builds by strategically splitting copy operations within the Dockerfile. Learn to copy only the package.json first and run 'npm install', followed by the rest of the project files, resulting in faster builds since dependencies do not reinstall after source code changes. Understand how file changes affect Docker caching and the importance of instruction order.

Docker Compose with Multiple Local Containers

Embark on creating a more intricate Docker-based application showcasing classic Docker usage by building a web app that counts page visits and displays them in the browser. The application will harness a Node.js server and a Redis in-memory data store, emphasizing the importance of maintaining a single Redis instance while potentially scaling the Node server across multiple Docker containers. The next steps include devising the architectural setup using separate containers for each service.

Explore the creation of a Node.js application that counts visits using Express and Redis. Learn to set up the project directory, write a package.json for dependencies, and craft an index.js to build the server logic. This includes initializing an Express app, connecting to a Redis client, handling route requests, and incrementing visit counts before diving into the Docker setup to facilitate networking.

Explore the creation of a Dockerfile designed to build a Node.js application container, involving a step-by-step guide on setting up the image with node:alpine as the base, optimizing the build process to only rebuild when the package.json changes, and using npm to manage dependencies. Learn to tag the resulting Docker image for easier handling.

Explore the use of Docker Compose to simplify networking between containers. Uncover the limitations of Docker CLI's networking capabilities and learn how Docker Compose provides a more efficient alternative for connecting and managing multiple containers, enhancing workflow and reducing redundant command entry.

Explore the utilization of Docker Compose to streamline the deployment of multi-container Docker applications. Learn to craft a 'docker-compose.yaml' file, encoding commands like 'Docker build' and 'Docker run' into a structured syntax to automate container creation and configuration, simplifying the orchestration of services like Redis and Node.js applications.

Discover how to implement a Docker compose file to create and network multiple containers with ease, featuring a Redis server and a Node.js application. Learn about Docker Compose's automatic networking capabilities, eliminating the need for additional port configurations to enable communication between containers. Also, explore the configuration within a Node.js application to connect to the Redis container via its service name, leveraging Docker's intelligent routing.

Uncover the convenience of Docker Compose for orchestrating container startups by utilizing the `docker-compose up` command. Learn how to effortlessly initiate all services from a Docker Compose file, and explore the automated networking setup between containers. Additionally, understand the simplified build-and-run process with the `--build` option for incorporating updates into images.

Discover the ease of managing multiple containers simultaneously with Docker Compose by learning to translate Docker CLI commands into Docker Compose commands. Navigate through starting and stopping containers using `docker-compose up -d` and `docker-compose down` for efficient workflow optimization.

Explore how to handle container crashes in Docker by learning techniques to automatically restart containers when errors occur. Delve into the implementation within a Node.js environment, manipulating server behavior to induce a crash, and utilizing Docker Compose to manage and mitigate such scenarios efficiently.

Explore Docker Compose's ability to automatically restart containers by configuring restart policies in the Docker Compose file. Understand the differences between "always," "on-failure," and "unless-stopped" policies and their use cases with Node.js applications. Learn how to utilize exit status codes to influence container restart behavior, and why certain policies require quoted values in a Docker Compose YAML file.

Learn the usage of the Docker Compose PS command to check the status of containers defined in a Docker Compose file. Understand the importance of running this command in the correct directory containing the Docker Compose.yaml file, as it's necessary for Docker Compose to identify which containers to display the status for.

Creating a Production-Grade Workflow

Learn the Docker production workflow for developing, testing, and deploying applications complete with future updates and redeployments. Gain insights into the continuous development cycle and prepare to integrate Docker with external hosting services such as AWS or DigitalOcean.

Explore the development workflow for a GitHub-based project, focusing on a dual-branch system with feature and master branches. Learn how to utilize pull requests to trigger automated testing with Travis CI, which upon successful test execution, deploys the application to Amazon Web Services (AWS), paving the way to integrate Docker into the development process.

Learn the significance of Docker in modern development workflows, including how it integrates with GitHub, Travis CI, and AWS. Discover that while Docker is not mandatory for implementing the workflow, it can significantly streamline various processes, ultimately enhancing the development experience.


Explore the essentials of setting up a React project and prepare it for containerization with Docker. Discover how to verify and install Node.js, necessary for React development, and use a simple project generator. Learn the process of encapsulating a straightforward React front-end application inside a Docker container, ready for testing and deployment, without delving into custom code or specific programming languages.

Explore the process of setting up a React application from scratch, including installing Node.js and utilizing npm to install the 'create-react-app' tool. Learn to generate a new React project and prepare for containerization by integrating the project within a Docker container. This initial setup is a foundational step towards managing applications using Docker.

Explore the essential Node.js commands within a React.js project, navigating the project structure and executing commands that prepare the application for different environments. Learn to start a development server with npm run start, run tests with npm run test, and create production builds with npm run build. Emphasize the differentiation between development and production setups in the context of preparing for Docker containerization.

Dive into setting up a Dockerfile for running a React JS application in a development environment, focusing on crafting a Dockerfile with a .dev extension, and distinguishing it from the production Dockerfile. Learn to build images from a custom-named Dockerfile using Docker build commands, and explore handling warnings and errors encountered during the image creation process.


Understand the importance of a lean Docker build context by comparing the impact of including the `node_modules` folder versus relying on the Docker image to install dependencies. Learn efficient Docker image creation for React applications by removing unnecessary duplication of dependencies, leading to optimized build times and cleaner project directories.

Explore the nuances of setting up a development server with Docker, including resolving issues related to port mapping and exposure for a React app. Delve into the process of starting a container from an image ID and learn about the critical `-p` flag required for accessing the app locally. The session also touches on updating source code in the container without rebuilding the image each time.

Learn to seamlessly update source code changes in a running Docker container. This section explains how to bypass the need to stop and rebuild the entire Docker image by utilizing Docker volumes to create a dynamic reference to local files, enabling real-time synchronization of code modifications without restarting the container.

WSL and Windows Users Must Read Before Next Lecture

Discover how to correct the common Docker run error by appropriately using the volume flag to map the local file system to a Docker container, ensuring that the 'node_modules' directory is not overwritten. Learn to set up a persistent volume within the Docker container to reflect code changes in real-time during local development.

Explore the simplification of complex `docker run` commands using Docker Compose, which allows encoding configurations like port settings and volumes into a YAML file. This section demonstrates creating a `docker-compose.yml` file for a development container, detailing how to specify service names, ports, and omit file mappings to node modules, ultimately leading to a streamlined container initialization process with `docker-compose up`.

Discover how to adjust the Docker Compose build context and specify a non-standard Dockerfile name for service image construction. Understand the significance of the `context` and `Dockerfile` options for locating project files and the Dockerfile, resolving issues faced when deviating from naming conventions.

Explore the nuances of Docker compose by setting up volume mounts and observing real-time code updates within a React app inside a container. Understand why the Dockerfile 'COPY' command remains essential for future flexibility, despite the volume mount's ability to reflect local changes immediately in the development environment.


Learn to run tests inside a Docker container using `npm run test` in a development environment, before advancing to using Travis CI for continuous integration. Understand the importance of connecting to standard input within the container with the `-it` flags to enable interactive testing and troubleshooting common issues such as a non-responsive test suite.

Discover how to troubleshoot common issues with test suites in Docker by utilizing an existing container with volume mapping for continuous test updates. Explore techniques to reflect changes in test files within a Docker container and examine alternative approaches to run tests, including setting up a dedicated service in Docker Compose.

Explore a new method for running tests within a Docker container using Docker Compose by adding a dedicated test service in the Docker Compose YAML file. This approach avoids the need to acquire a container ID and automatically reruns tests when files change, with a focus on correct YAML syntax and volume mapping. However, the limitation lies in the inability to interact with the test suite directly through standard input.

Learn how Docker Compose manages separate service containers and automatically reruns tests upon changes due to volume mapping. Discover the limitation of not being able to interact with the test suite's input commands due to the processes inside Docker containers and their standard input/output streams, exploring Docker attach as a potential but imperfect solution.


Understand the distinctions between development and production environments in Docker container setup. Focus on the transition from using a development server for NPM run start and test commands to employing nginx for serving the production build, which includes static files like index.html and main.js, thereby eliminating the need for a development server in production. Up next, tackle crafting the Dockerfile for a production-ready web container.

Learn to configure a production-ready Docker container for a React application using Nginx and a multi-step build process. Understand the necessity of a separate Dockerfile for production, optimizing the build by eliminating unnecessary dependencies, and leveraging Node Alpine and Nginx images to create an efficient, streamlined container.

Discover how to optimize Docker container builds for production by implementing a multi-step build process. This tutorial covers creating a Docker file that utilizes distinct build and run phases, comprising dependency installation and application build using a node alpine image, followed by copying the production assets to an Nginx image to serve the application.


Discover how to construct a multi-step Dockerfile for a React application, test the build process, and serve the app using an Nginx server. Learn to execute the Docker build command without the '-f' flag for standard file names and map local ports to the container's ports, ensuring a production-ready deployment using Nginx.

Continuous Integration and Deployment with AWS

Learn to integrate Docker containers with a CI/CD pipeline using GitHub, Travis CI, and AWS. Master the process for developing on feature branches, deploying from the master branch, and employing Travis CI for automated testing and deployment to AWS. Prior knowledge of Git and GitHub is assumed, while no prior experience with Travis CI or AWS is required.

Learn to set up a GitHub repository for hosting code, connect it with a local git repository, and push the local work to GitHub. Understand the importance of making the repository public for the intended flow, with guidance on creating private repositories for personal projects. Additionally, get insights into the initial setup process and remote linking with GitHub.

Important Info About Travis and Account Registration

Explore the process of integrating Travis CI with a GitHub repository, focusing on how this continuous integration service automatically reacts to new code pushes. Learn the steps to set up Travis CI, including authorization via OAuth and configuring the service to monitor a GitHub project, ultimately preparing for automated testing and deployment to AWS.

Understand how to configure Travis CI to work with a Docker environment, focusing on setting up automated testing. Learn to create a `.travis.yml` file with instructions for Travis CI to build images using `Dockerfile.dev` and execute a test suite, while exploring the necessity for Docker CLI and superuser permissions to streamline the CI pipeline.

Enhance the Continuous Integration process by configuring the script section in the Travis CI configuration file to run tests using Docker. Learn to work around the npm run test command's default behavior that hangs after execution by adding the '-- --coverage' flag to ensure proper test suite completion and accurate reporting on Travis CI.

Harness the power of continuous integration with Travis CI for Docker-enabled projects. Learn how to commit changes, push to GitHub, and trigger automated Travis builds. Witness the process of Docker support integration, image building, running NPM installs, and executing test suites, followed by a triumphant green build indicating success. Gain insight into setting up a robust CI pipeline that monitors a GitHub repository for changes, ensuring every update meets quality standards.

AWS Elastic Beanstalk
Elastic Beanstalk Setup and Configuration

Dive into Elastic Beanstalk's architecture, understanding how it seamlessly scales applications with Docker containers. Elastic Beanstalk automatically manages traffic through load balancers and virtual machines, ensuring efficient handling of incoming requests by adding more VMs as demand increases. Discover how to interact with the EBS dashboard and access the deployed default Docker application.

Configure automatic deployment to AWS Elastic Beanstalk with Travis CI after successful test completion by updating the Travis.yaml configuration. Master branch merges trigger deployment, with settings including provider selection, region specification, application and environment names, S3 bucket paths, and ensuring deployments are limited to the master branch updates.

Required Update for IAM User and Keys

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Taught by Stephen Grider, who is recognized for their work in Full-Stack Web Development, React, and Node.js
Examines the latest technologies in the Dev Ops world, including Docker and Kubernetes
Taught by in-demand professionals who are the experts in the rapidly growing field of Dev Ops with Docker and Kubernetes
Develops skills in Docker, Kubernetes, Continuous Integration, and Continuous Deployment, which are core skills in DevOps Engineering
May be of particular interest to learners who want a strong foundation in Docker containerization and Kubernetes deployment
This course is not ideal for beginners as it expects students to have existing knowledge, skills, and experience with Docker, Kubernetes, Node.js, and building web applications

Save this course

Save Docker and Kubernetes: The Complete Guide to your list so you can find it easily later:
Save

Reviews summary

Docker and kubernetes masterclass

Learners say this course is well taught with engaging assignments. Its one reviewer praises how well Docker is taught. This course is a great way to learn more about Docker and Kubernetes.
Instructor has exceptional subject knowledge
"Your knowledge on the subject is exceptional"
Course is great for learning Docker
"thanks for making me understand docker"
"I had gone though many other videos where no where I understood them properly."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Docker and Kubernetes: The Complete Guide with these activities:
Docker Resource Compilation
Establishes a personal repository of Docker-related resources for future reference and knowledge building.
Browse courses on Docker
Show steps
  • Gather and organize essential Docker documentation, tutorials, and articles.
  • Categorize resources based on topics such as Docker fundamentals, image creation, and deployment.
  • Create a personal knowledge base or online repository to store and access the compiled materials.
Docker Concepts
Reinforces understanding of Docker's core concepts, such as its architecture and components.
Browse courses on Docker
Show steps
  • Review introductory material on Docker from the official documentation or reputable online resources.
  • Explore the basics of Docker containers, images, and registries.
  • Set up Docker locally and execute fundamental commands such as 'docker run' and 'docker build'.
Docker Study Group
Fosters collaboration and knowledge exchange by engaging with peers in a Docker study group.
Browse courses on Docker
Show steps
  • Join or create a study group dedicated to Docker.
  • Regularly meet with group members to discuss Docker concepts, share experiences, and work on projects together.
  • Present findings and lead discussions on specific Docker topics to enhance understanding.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Hands-on Docker Image Creation
Provides practical experience building Docker images, ensuring familiarity with the Dockerfile syntax.
Browse courses on Docker
Show steps
  • Follow guided tutorials that provide step-by-step instructions on creating custom Docker images.
  • Create a Dockerfile for a sample application and build the corresponding image.
  • Experiment with different Dockerfile commands and explore their effects on the image creation process.
Docker Command Line Mastery
Sharpens proficiency in using Docker commands through repetitive exercises.
Browse courses on Docker
Show steps
  • Practice common Docker commands such as 'docker run', 'docker build', and 'docker compose' in a terminal.
  • Troubleshoot common Docker errors and identify solutions.
  • Automate Docker tasks using scripts or configuration files.
Dockerized Web Application
Solidifies knowledge of Dockerizing web applications and deploying them to the cloud.
Browse courses on Docker
Show steps
  • Design and develop a simple web application using a preferred framework.
  • Create a Dockerfile to containerize the web application.
  • Deploy the Dockerized application to a cloud platform such as AWS or Azure.
Docker Hackathon
Spurs innovation and challenges students to apply Docker skills in a competitive environment.
Browse courses on Docker
Show steps
  • Identify and register for Docker-related hackathons or competitions.
  • Form a team and brainstorm ideas for Docker-based projects.
  • Develop and present a Dockerized solution to address the hackathon challenge.

Career center

Learners who complete Docker and Kubernetes: The Complete Guide will develop knowledge and skills that may be useful to these careers:
Software Engineer
Software Engineers create and maintain software systems. Skills in Docker and Kubernetes are typically required for a Software Engineer. This course teaches the fundamentals of Docker and Kubernetes, providing a strong foundation for success in this role.
DevOps Engineer
DevOps Engineers use tools and techniques to automate the software development and deployment process. This course teaches the fundamentals of Docker and Kubernetes, which are essential tools for DevOps Engineers.
Cloud Engineer
Cloud Engineers design, build, and maintain cloud computing systems. This course teaches the fundamentals of Docker and Kubernetes, which are essential technologies for Cloud Engineers.
Systems Administrator
Systems Administrators manage and maintain computer systems. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for Systems Administrators who need to manage containerized applications.
Web Developer
Web Developers design and develop websites. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for Web Developers who need to deploy and manage web applications in a containerized environment.
Mobile Developer
Mobile Developers design and develop mobile applications. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for Mobile Developers who need to deploy and manage mobile applications in a containerized environment.
Data Scientist
Data Scientists use data to solve business problems. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for Data Scientists who need to deploy and manage data science applications in a containerized environment.
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for Machine Learning Engineers who need to deploy and manage machine learning models in a containerized environment.
Data Analyst
Data Analysts collect and analyze data to help businesses make better decisions. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for Data Analysts who need to deploy and manage data analytics applications in a containerized environment.
Business Analyst
Business Analysts analyze business processes and help businesses improve their operations. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for Business Analysts who need to understand how these technologies can be used to improve business processes.
Project Manager
Project Managers plan and execute projects. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for Project Managers who need to understand how these technologies can be used to manage projects.
Technical Writer
Technical Writers create and maintain documentation for technical products. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for Technical Writers who need to understand how these technologies work.
IT Support Specialist
IT Support Specialists provide technical support to users. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for IT Support Specialists who need to understand how these technologies work.
Quality Assurance Tester
Quality Assurance Testers test software applications to ensure that they meet requirements. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for Quality Assurance Testers who need to understand how these technologies work.
Cybersecurity Analyst
Cybersecurity Analysts protect computer systems from cyberattacks. This course teaches the fundamentals of Docker and Kubernetes, which can be useful for Cybersecurity Analysts who need to understand how these technologies can be used to protect computer systems.

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Docker and Kubernetes: The Complete Guide.
Provides a comprehensive overview of Docker, including how to use it to build, ship, and run distributed applications. It valuable resource for anyone who wants to learn more about Docker and how to use it effectively.
Provides a practical guide to using Kubernetes to manage containerized applications. It covers everything from setting up a Kubernetes cluster to deploying and managing applications. It valuable resource for anyone who wants to learn more about Kubernetes and how to use it effectively.
Provides a practical guide to deploying and managing Kubernetes in production, covering topics such as cluster architecture, container management, and networking.
Dives into the inner workings of Docker. It provides a comprehensive understanding of the technology, from its architecture to its advanced features. It's a valuable resource for anyone who wants to master Docker.
Provides a comprehensive guide to using Kubernetes, covering topics such as cluster architecture, container management, and networking.
Provides a comprehensive overview of Docker, including how to use it to build, ship, and run distributed applications. It valuable resource for anyone who wants to learn more about Docker and how to use it effectively.
Provides a practical guide to using Kubernetes to manage containerized applications. It covers everything from setting up a Kubernetes cluster to deploying and managing applications. It valuable resource for anyone who wants to learn more about Kubernetes and how to use it effectively.
Provides a practical guide to using Docker for building, shipping, and running distributed applications, covering topics such as image creation, container management, and networking.
Provides a comprehensive guide to using Kubernetes for developers, covering topics such as cluster architecture, container management, and networking.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Docker and Kubernetes: The Complete Guide.
Server Deployment and Containerization
Most relevant
Deploying .Net Microservices with K8s, AKS and Azure...
Most relevant
Handling Data and Stateful Applications in Docker and...
Most relevant
Deploying Containerized Applications
Most relevant
Guided Project: Scaling Applications with Kubernetes
Most relevant
Virtualization, Docker, and Kubernetes for Data...
Most relevant
Managing Sitecore Docker Containers
Most relevant
Guided Project: Scaling Applications with Kubernetes V2
Most relevant
Getting Started with Docker
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser