We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Docker

A Project-Based Approach to Learning

Jason Cannon

Have you tried to learn Docker on your own, but lack the structure you need to really improve your skills?

Are you tired of picking up bits and pieces of information that you can't just seem to put together?

Do you learn best by doing?

Read more

Have you tried to learn Docker on your own, but lack the structure you need to really improve your skills?

Are you tired of picking up bits and pieces of information that you can't just seem to put together?

Do you learn best by doing?

If so, you're going to love this course.

One of the biggest complaints I hear from students is that most of the courses they've taken in the past simply provide information without any context and without any idea of how to put that information to use.  

This course turns that old, frustrating, and outdated way of learning on its head.  

It's project-based, which means instead of learning bits and pieces of information, you'll learn the exact Docker commands that you can use in real-world situations. You get the chance to immediately put what you learn to use so that you fully understand and remember it.

In this Docker course you will learn how to:

  • Install Docker on Windows, Mac, and Linux.

  • Manage Docker containers.

  • Master Docker commands. (Here are just a few commands you'll learn: docker run, docker build, docker images, docker inspect, docker network, docker system, docker volume, and more…)

  • Use existing Docker images.

  • Build your very own custom Docker images.

  • Push and Pull your images to Docker Hub or any other Docker Registry.

  • Create a private Docker image registry.

  • Manage the data needed by and created by your Docker containers.

  • Persist data between container runs, including using Docker volumes.

  • View and manage the output and logs generated by your containers.

  • Docker networking, including how to create user-defined networks.

  • Create a Cluster of Docker Containers with Docker Swarm.

  • Much, much, more...

When you enroll, you get lifetime access to the course.  Your course never expires.  You can study at your own pace and refer back to the lessons whenever you want.

If you're ready to level-up your DevOps and Docker skills, enroll now.

Enroll now

What's inside

Learning objectives

  • How to install, configure, and manage docker host systems and docker containers. linux, mac, and windows are covered.
  • Hands-on exercises and projects complete with step-by-step, command-by-command instructions. you'll not only learn docker concepts, but you'll be able to actually use them in real-world situations.
  • Best-practices for creating custom docker images using dockerfiles.
  • How to dockerize any application, including your very own custom-written applications.
  • How to create a private docker registry to safeguard sensitive data. perfect for enterprise or corporate environments. (it's like having your own private docker hub.)
  • How to create multi-container applications the right way using docker networks.
  • And much, much more...

Syllabus

Installing Docker

In this lesson you will learn:

  • What editions of Docker are available.

  • Which edition of Docker is right for your situation.

  • What update channels exist for Docker.

  • Which Docker update channel to use and why.

Read more

In this lesson you will learn how to install Docker on Windows.

In this lesson you will learn how to install Docker Desktop on Mac.

In this lesson you will learn how to install Docker on Debian-based Linux distributions such as Debian, Ubuntu, and Linux Mint.

In this lesson you will learn how to install Docker on Red Hat Enterprise Linux (RHEL) and CentOS.

Introduction to Docker

In this lesson you'll learn:

  • What a Docker container is.

  • How containers differ from virtual machines.

  • The Benefits of using containers.

  • How Docker utilizes a layered filesystem to create images.

  • The methods Docker uses to provide container separation.

  • What a Dockerfile is and when to use one.

  • What base images are as well as why and when to use them.

  • Why Docker works well in a microservices architecture.

In this lesson you will learn how to:

  • Start and stop Docker containers.

  • Display information about containers running on the host system

  • Download container images.

  • Use the built-in Docker help system.

Managing Docker Container Images

In this lesson you will learn how to:

  • Download a Docker image.

  • View the history of an image.

  • Tag an image.

  • Delete an image.

  • View and clean-up the storage used by images.

In this lesson you'll learn why it's important to due the exercises in this Docker course.

Exercise Instructions: Managing Container Images

This is the walkthrough video for the Managing Docker Images Exercise.

Docker Container Images Quiz
Running and Managing Docker Containers

In this lesson you will learn how to:

  • Give your Docker containers a name and then manage those containers using their names.

  • View a container's state, no matter if it is currently running or if it has stopped.

  • Configure a container so that it restarts any time it exits or even if the host system gets rebooted.

  • View the output generated by a container that is running in the background.

  • Quickly clean up and remove old containers that have already stopped.

Exercise Instructions: Running Containers

This is the walkthrough video for the Running Containers Exercise.

Running and Managing Docker Containers: Quiz
Exposing Containers to the Public Network

In this lesson, you will learn how to make an application running inside a container accessible from outside of the Docker host machine.  Additionally, you'll learn how to share data with containers running on your docker host system.

NOTE: For easier to read instructions download the PDF resource attached to this lesson.

Goal:

The goal of this exercise to expose the port of a container to the outside world. For this exercise, you will use the Apache HTTP Server.

Instructions:

Start a Container Using the Apache HTTP Server Image

The image name for the Apache HTTP Server is "httpd." Start an image named "apache_welcome" using the "httpd" image. Use port 9900 on the docker host system to communicate with port 80 on the container.

docker run --name apache_welcome -d -p 9900:80 httpd:latest


Confirm the Port is Open

Use the "​docker ps​" command and examine the "PORTS" column for your apache_welcome container.

docker ps

Confirm that you see "0.0.0.0:9900->80/tcp" in the "PORTS" column.

View the application

Details. Use the "curl" command to access Apache

curl http://localhost:9900


You should see HTML returned.

If you are running Docker on your local system, you can further check that Apache is accessible by

typing "​http://localhost:9900​" into your web browser's address bar and hitting "Enter."

This is the walkthrough video for the Making a Container Publicly Available Exercise.

Connecting to Running Containers and Managing Container Output

In this lesson, you'll learn how to connect to a running Docker container using an interactive shell, as well as how to execute other commands inside a container.

Exercise Instructions: Entering and Connecting to Containers

This is the walkthrough video for the Entering Containers Exercise.

In this lesson, you will learn where to check for logs on a host machine when running Docker.  You'll learn how to view the logs generated by Docker containers as well as by the Docker Engine itself.

Building Images With Dockerfiles

In this lesson, you will learn where Docker container images are hosted and the naming conventions used to access those images.

In this lesson, you will learn how to build an image using a Dockerfile and how to upload that image to the Docker hub registry.

This is the exercise instructions for Build and Push an Image exercise.

This is the walkthrough video for the Building and Pushing Docker Images Exercise.

Docker Volumes

In this lesson you will learn how to persist and save data using Docker volumes. Additionally, you'll learn how to share the same data with multiple containers. You'll also learn how to make data available to a container in read-only mode. Finally, you learn how to use ephemeral volumes and how to remove unused volumes quickly.

This is the exercise instructions for the Managing Volumes exercise.

This is the walkthrough video for the Managing Volumes Exercise.

Docker Volumes Quiz
Docker Networking and Dockerizing Applications

In this lesson, you will learn all about Docker networking, including:

  • How Docker utilizes the existing features of the Linux kernel to control network traffic to and from Docker containers.

  • About the default network used for containers started on a Docker host system.

  • How to gather the details of all the networks and use on a docker host.

  • How to determine the exact IP address used by each container.

  • How to create user defined networks that allow for network separation among various containers.

  • Practical examples of how to deploy a web application using the best practices regarding Docker networking.

  • How Docker uses an embedded DNS server with built in service discovery for each of its user defined networks.

  • And more...

This is the exercise instructions for the Docker Networking exercise.

This is the walkthrough video for the Docker Networking Exercise.

Docker Networking Quiz
Docker Orchestration

In this less you will learn how to create a Docker Swarm and run services within the swarm.

Additional Projects and Exercises

This is the exercise instructions for the "Deploying a Private Docker Registry" Exercise.

This is the walkthrough video for the "Deploying a Private Docker Registry" Exercise.

Bonus Section

The contents of this lecture are so secret I'm not even allowed to describe it! Open, if you dare.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Covers foundational knowledge and best practices for Docker
Perfect for individuals who want to level up their skills in Docker and DevOps
Includes hands-on exercises to reinforce learning and develop practical skills
Suitable for a wide range of individuals, from beginners with no prior Docker experience to experienced professionals looking to expand their knowledge
Led by an experienced instructor with a strong reputation in the field
Requires some familiarity with Linux and command-line tools

Save this course

Save Docker: A Project-Based Approach to Learning to your list so you can find it easily later:
Save

Reviews summary

Project-based docker learning

Students largely praise this project-based Docker course, often citing it as the source of enrichment and career advancement. Reviewers specifically commend the course creator, Jason.

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: A Project-Based Approach to Learning with these activities:
Create a Docker Compose File
Creating a Docker Compose file will help you understand how to configure and manage multiple Docker containers.
Browse courses on Docker Compose
Show steps
  • Install Docker Compose on your local machine.
  • Create a Docker Compose file that defines multiple containers.
  • Run the Docker Compose file to create and start the containers.
  • Troubleshoot any errors that occur.
Practice Docker commands
This will solidify your understanding of Docker commands and their usage
Browse courses on Docker CLI
Show steps
  • Set up a Docker environment on your local machine
  • Use the Docker CLI to perform basic operations (e.g., docker run, docker build)
  • Experiment with different Docker commands and options
Run Docker Images
Running Docker images multiple times with different settings to test for proper configuration will help you understand the idiosyncrasies of Docker itself.
Browse courses on Docker Images
Show steps
  • Install Docker on a local machine.
  • Pull an image from Docker Hub.
  • Run the image with different settings, such as different ports or volumes.
  • Troubleshoot any errors that occur.
One other activity
Expand to see all activities and additional details
Show all four activities
Build a Docker Image for a Web Application
Building a Docker image for a web application helps reinforce the concepts of Docker image creation and deployment.
Browse courses on Docker Images
Show steps
  • Create a Dockerfile for your web application.
  • Build the Docker image using the Dockerfile.
  • Push the Docker image to a Docker registry.

Career center

Learners who complete Docker: A Project-Based Approach to Learning will develop knowledge and skills that may be useful to these careers:
Cloud Infrastructure Engineer
A Cloud Infrastructure Engineer designs, builds, and maintains cloud computing infrastructure. This course may be useful for a Cloud Infrastructure Engineer as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to streamline the deployment and management of applications on cloud infrastructure, and this course can help a Cloud Infrastructure Engineer learn how to use Docker to do this.
Machine Learning Engineer
A Machine Learning Engineer develops and deploys machine learning models. This course may be useful for a Machine Learning Engineer as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to streamline the development and deployment of machine learning applications, and this course can help a Machine Learning Engineer learn how to use Docker to do this.
Software Engineer
A Software Engineer designs, develops, and maintains software applications. This course may be useful for a Software Engineer as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to streamline the development and deployment process, and this course can help a Software Engineer learn how to use Docker to do this.
Web Developer
A Web Developer designs, develops, and maintains websites and web applications. This course may be useful for a Web Developer as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to streamline the development and deployment process, and this course can help a Web Developer learn how to use Docker to do this.
Information Security Analyst
An Information Security Analyst is responsible for protecting an organization's IT systems from security threats. This course may be useful for an Information Security Analyst as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to improve the security of applications, and this course can help an Information Security Analyst learn how to use Docker to do this.
Full-Stack Developer
A Full-Stack Developer is responsible for the development and maintenance of both the frontend and backend of a web application. This course may be useful for a Full-Stack Developer as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to streamline the development and deployment of full-stack applications, and this course can help a Full-Stack Developer learn how to use Docker to do this.
Web Architect
A Web Architect designs and develops the architecture of websites and web applications. This course may be useful for a Web Architect as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to streamline the development and deployment of web applications, and this course can help a Web Architect learn how to use Docker to do this.
Data Scientist
A Data Scientist uses data to develop models and insights that can be used to make informed decisions. This course may be useful for a Data Scientist as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to streamline the development and deployment of data science applications, and this course can help a Data Scientist learn how to use Docker to do this.
DevOps Engineer
A DevOps Engineer is responsible for the development and operation of software applications. This course may be useful for a DevOps Engineer as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to streamline the development and deployment process, and this course can help a DevOps Engineer learn how to use Docker to do this.
Systems Administrator
A Systems Administrator is responsible for the maintenance and operation of computer systems. This course may be useful for a Systems Administrator as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to streamline the deployment and management of applications, and this course can help a Systems Administrator learn how to use Docker to do this.
Cloud Security Engineer
A Cloud Security Engineer is responsible for protecting an organization's cloud computing infrastructure from security threats. This course may be useful for a Cloud Security Engineer as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to improve the security of applications deployed in the cloud, and this course can help a Cloud Security Engineer learn how to use Docker to do this.
Cloud Developer
A Cloud Developer develops and deploys applications in the cloud. This course may be useful for a Cloud Developer as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to streamline the development and deployment of cloud applications, and this course can help a Cloud Developer learn how to use Docker to do this.
Backend Developer
A Backend Developer is responsible for the development and maintenance of the backend of a web application. This course may be useful for a Backend Developer as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to streamline the development and deployment of backend applications, and this course can help a Backend Developer learn how to use Docker to do this.
Cloud Architect
A Cloud Architect designs, builds, and manages cloud computing solutions. This course may be useful for a Cloud Architect as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to deploy applications in the cloud, and this course can help a Cloud Architect learn how to use Docker to do this.
Network Architect
A Network Architect designs, builds, and maintains computer networks. This course may be useful for a Network Architect as it teaches the learner how to use Docker, a platform for developing, shipping, and running applications in containers. Docker can be used to deploy applications on a network, and this course can help a Network Architect learn how to use Docker to do this.

Reading list

We've selected six 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: A Project-Based Approach to Learning.
Practical guide to using Docker in real-world environments. It covers a wide range of topics, from installing and configuring Docker to building and deploying containerized applications.
Comprehensive guide to Kubernetes. It covers a wide range of topics, from the basics of Kubernetes to advanced topics such as Kubernetes networking and security.
Provides a comprehensive overview of the challenges and techniques involved in designing and building data-intensive applications. It good choice for learners who want to understand the fundamentals of data management.
Provides a comprehensive overview of the principles and practices of microservices architecture. It good choice for learners who want to understand the benefits and challenges of using microservices.
Provides a deeper, more theoretical, understanding of Docker. It is particularly useful for learners who want more background into Docker's components and design.
While this book is specific to Docker Enterprise Edition, it provides valuable insights into Docker best practices and architecture. It can be a useful reference for those who want to gain a deeper understanding of Docker and its enterprise capabilities.

Share

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

Similar courses

Here are nine courses similar to Docker: A Project-Based Approach to Learning.
Linux Shell Scripting: A Project-Based Approach to...
Most relevant
Docker for the Absolute Beginner - Hands On - DevOps
Most relevant
Docker for Beginners with Hands-on labs
Most relevant
Docker Basics for DevOps
Most relevant
Managing Sitecore Docker Containers
Building and Orchestrating Containers with Docker Compose
Introduction to Docker: Build Your Own Portfolio Site
Containerization Using Docker
Docker Essentials & Building a Containerized Web...
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