We may earn an affiliate commission when you visit our partners.
Course image
David Joseph Katz

[Docker-Endorsed]

This course has been updated for 2024. So when you take this course, you can be 100% confident that your experience will be modern and full of relevant material.

Read more

[Docker-Endorsed]

This course has been updated for 2024. So when you take this course, you can be 100% confident that your experience will be modern and full of relevant material.

Since this course launched, many students have had 5-star experiences:

  • "Love Love Love David's courses. I'm a seasoned programmer just looking to refresh my skills and he does such a great job. Easy to listen to and keeps his courses moving along and focused. Great job. "

  • "Highly recommended course. It covers all basic fundamentals to high level of project requirements based on Docker container technology."

  • "Thank you teacher, I learned not only about docker but also many useful command and development tips. I recommend this lecture to every developer who are interested in virtualization, CI/CD, networking, linux system, etc."

  • "The course was thorough and was easy to follow. I was able to complete the projects and it was exciting to see the results. Thank you. "

  • "Great course. Instructor was very engaging and made the concepts interesting by giving apt examples.

    Docker is a revolutionary technology in the world of software and dev ops engineering. For developers, Docker is a must-know. For enterprises, Docker is a must-use.

    What is Docker?

    Docker is an open platform that lets you package, develop, run, and ship applications in environments called containers.

    Why should I learn Docker from you?

    As a software engineer with 5+ years of industry experience, I designed this course to teach you the same docker and container-related concepts that I apply when working on million dollar applications.

    This is a project-based course. So, you will become familiar with the main Docker commands as you build various applications with containers and images.

    Throughout this course, you will achieve the following (and more):

    • Run your own containers on the command line with Docker.

    • Build your own container images with Dockerfiles.

    • Persist data across containers with mounts.

    • Compose multi-container applications with Docker Compose.

    • Update containers dynamically with volumes.

    • Create private networks for Docker containers.

    • Create a multi-node cluster with Docker Swarm.

    • Set up a continuous deployment workflow with the automatic building of Docker Images with Github Actions and Amazon ECR. Expand your software engineering skills to also include dev ops engineering skills.

    Additional highlights include:

    • Extra videos for Windows students in particular. A lot of the course happens on the command line. Most of the course is recorded on MacOS which works well for MacOS or Linux-based students. But wherever necessary, I also recorded videos on a Windows machine for anyone on Windows.

    • An extra reference content section, helpful for anyone wanting to go in depth on some of the technologies that appear in the course, such as JavaScript. These topics are worth discussing, but don't fit naturally within a Docker-focused section.

    • 100% up-to-date material - the journey you follow will not have any bugs or errors. I will also be available to help answer questions, or re-record/edit/update content if necessary.

    Overall, Docker and containers are technologies that every software engineer should be familiar with.

    So what are you waiting for? See you in the course.

Enroll now

What's inside

Learning objectives

  • Updated for 2024: learn how to use docker and code dockerized applications from an engineer with 5+ years of industry experience.
  • Use docker compose to create multi-container applications.
  • Create and run docker containers.
  • Build your own custom docker images.
  • Run docker commands on the command line.
  • Understand best practices of dockerfiles and image building.
  • Set up a continuous deployment workflow using tools like dockehub, github actions, and amazon ecr.
  • Create a cluster with docker swarm.
  • Publish and host docker images on dockerhub and amazon ecr.
  • And more!

Syllabus

Introduction
Big Picture Docker: What, Why, Who and Features - Revised
Course Repo And Resources
Install Docker for Mac - Revised
Read more
Install Docker for Linux - Revised
Install Docker for Windows - Revised
Other Course Requirements - A Code Editor
Docker Containers and the Docker Engine
Docker Containers and the Docker Engine - Revised
Containers vs VMs - Revised
Just enough about Docker Images for Containers - Revised
Run a Ubuntu Container and a Container Shell
For Windows: Run a Ubuntu Container and Container Shell
Run a Ubuntu Container Continued - Revised
Docker Containers and Images | Summary and Commands
Docker Images in Depth
Docker Images and the Dockerfile - Revised
Build a File Server Image - Revised
Build an Express.js image - Revised
Layered Image Cache and .dockerignore - Revised
Optional: Build a PHP Image - Revised
Optional: Build a Python Flask Image - Revised
Docker Images in Depth | Summary and Commands
Docker Storage: Volume, Bind, and Tmpfs Mounts
Docker Storage: Volume, Bind, and Tmpfs Mounts - Overview - Revised
Volume Mounts - Revised
Bind Mounts - Revised
For Windows: Bind Mounts - Revised
Tmpfs Mounts - Revised
Docker Container Storage - Mounts | Summary and Commands
Multicontainer Docker - Networking and Compose
Docker Container Networking - Revised
Use and Create a Docker Container Network - Revised
Docker Compose and docker-compose.yml - Revised
Compose a Two-Container App - Part One - Revised
Compose a Two-Container App - Part Two - Revised
Multicontainer Docker: Networking and Compose | Summary and Commands
Docker Compose in Depth - Volumes and Networks
Volumes - Update Compose Containers Dynamically - Revised
Part 1 - Custom Networks, Compose another Multicontainer Application - Revised
Part 2 - Custom Networks, Compose another Multicontainer Application - Revised
Part 3 - Custom Networks, Compose another Multicontainer Application - Revised
Docker Compose in Depth - Volumes and Networks | Summary and Commands
Docker Swarm
Docker Swarm - Revised
Create 3 Azure Linux VMs - Revised
Install Docker on Linux VMs - Revised
Scale Services and Explore the Routing Mesh in Docker Swarm - Revised
Tear Down Azure VMs
Docker Swarm | Summary and Commands
Docker and Continuous Deployment
Docker and Continuous Deployment - Revised
Host Docker Images with Dockerhub - Revised
Automatic Image Builds with Github and Amazon ECR Part 1 - Revised
Automatic Image Builds with Github and Amazon ECR Part 2 - Revised
Optional Reference Section | Mega JavaScript and Node.js overview
Optional: Mega JavaScript and Node.js Overview for Newcomers part 1
Optional: Mega JavaScript and Node.js Overview for Newcomers part 2
Conclusion
Final Remarks and Bonus Content

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Taught by David Joseph Katz, who has 5+ years of industry experience, which is typical of online courses that aim to teach practical skills
Provides hands-on experience by having students build various applications with containers and images, which is valuable for learners who want to apply their knowledge practically
Suitable for seasoned programmers who want to refresh their skills, as the instructor focuses on clarity and keeps the course focused
Offers extra reference content helpful for anyone wanting to go in-depth on some of the technologies like JavaScript that appear in the course
May require additional resources for Windows students, as the course happens on the command line and most of it is recorded on MacOS
Teaches students to build containerized applications from an industry professional, which is valuable for learners who want to develop in-demand skills

Save this course

Save Docker - Introducing Docker Essentials, Containers, and more to your list so you can find it easily later:
Save

Reviews summary

Great overview of docker

According to students, this Docker course provides a good overview of Docker Essentials and Containers. Learners say they come away from the course with lots of knowledge.
Learners appreciate the amount of knowledge gained.
"Very good course, learned a lot"
"gave a good overview"

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 - Introducing Docker Essentials, Containers, and more with these activities:
Kuberenetes Overview
Enhance your understanding of the fundamentals of Kubernetes and container orchestration before diving into the course.
Show steps
  • Review core concepts of Kubernetes
  • Explore the role of containers in Kubernetes
  • Summarize the key benefits of using Kubernetes
Docker Crash Course
Gain practical experience with Docker through hands-on tutorials, complementing the theoretical concepts covered in the course.
Show steps
  • Install Docker on your system
  • Create and run a basic Docker container
  • Explore Docker commands for image management
  • Build a Dockerfile for a simple application
  • Deploy a Docker container to a cloud platform
Review Linux Basics
Strengthen your Linux foundation to support your Docker learning journey.
Show steps
  • Review concepts like file permissions, processes, and networking
  • Refresh your understanding of command-line tools and navigation
12 other activities
Expand to see all activities and additional details
Show all 15 activities
Study Group Discussions
Engage in discussions with fellow learners to reinforce concepts, share insights, and clarify any doubts.
Show steps
  • Join or create a study group
  • Prepare topics for discussion
  • Facilitate discussions and share knowledge
Hands-on Container Commands
Practice running essential Docker commands on the command line to build a strong foundation for working with containers.
Show steps
  • Run a container
  • Build a container image
  • Use Docker Compose to create a multi-container application
Micro-Project: Building a Simple Web App with Docker
Apply your understanding of Docker by creating a small web application using Docker containers.
Show steps
  • Design a simple web application
  • Create a Dockerfile for the application
  • Build and run the Docker container
  • Deploy the web application
Solve Docker challenges
Solving Docker challenges will test your understanding of key concepts and help you develop your problem-solving skills.
Browse courses on Docker
Show steps
  • Find Docker challenges online or in books.
  • Solve the challenges using Docker commands.
  • Review your solutions and identify areas for improvement.
Compile Materials
Refine and strengthen your understanding by organizing and summarizing course materials.
Show steps
  • Gather course notes, assignments, and assessments
  • Review course materials, marking important concepts and definitions
  • Create a study guide or summary sheet
Create a Dockerized web application
This hands-on activity will help you solidify your understanding of Docker by applying it to a real-world scenario.
Browse courses on Docker
Show steps
  • Choose a web application framework.
  • Create a Dockerfile for your application.
  • Build and run your Docker image.
  • Deploy your application to a container registry.
Practice Docker Commands
Solidify your grasp of Docker commands and operations through hands-on practice.
Show steps
  • Create a Linux virtual machine or Docker container
  • Install Docker and run basic commands like 'docker run', 'docker ps', and 'docker stop'
  • Practice building and pushing Docker images to a registry
  • Troubleshoot common Docker errors and issues
Practice Container Networking
Sharpen your networking skills by experimenting with Docker's networking capabilities.
Show steps
  • Create multiple containers and configure their network settings
  • Use Docker Compose to define and manage container networks
  • Test and troubleshoot network connectivity between containers
Create a Demo Application
Enhance your understanding by applying Docker concepts to a practical, hands-on project.
Show steps
  • Design a simple web application using Docker Compose
  • Develop the application code and Dockerfile
  • Deploy the application to a cloud platform or local server
  • Document the process and share your findings
Build and Deploy a Multi-Node Cluster
Demonstrate your mastery of Docker by building and deploying a fully-fledged multi-node cluster.
Show steps
  • Set up a multi-node Docker Swarm cluster
  • Create and manage services across multiple nodes
  • Implement load balancing and service discovery
  • Monitor and troubleshoot the cluster
Explore Advanced Docker Features
Expand your understanding of Docker's capabilities by exploring advanced topics through guided tutorials.
Show steps
  • Find tutorials on Docker networking, volumes, and logging
  • Follow along with the tutorials, experimenting with different configurations
  • Read documentation and blog posts to supplement your knowledge
Mentor a Junior Engineer
Reinforce your learning by sharing your knowledge and supporting others in their Docker journey.
Show steps
  • Identify and connect with junior engineers seeking guidance
  • Share your knowledge and experience in Docker and containerization
  • Provide support and feedback to help them grow

Career center

Learners who complete Docker - Introducing Docker Essentials, Containers, and more will develop knowledge and skills that may be useful to these careers:
DevOps Engineer
DevOps engineers are responsible for the planning, design, and implementation of software development and IT operations processes. This course is a great fit for those interested in a career in DevOps engineering, as it provides a comprehensive overview of Docker and how it can be used to improve the efficiency of software development and IT operations processes.
Software Engineer
Software engineers apply engineering principles to the design, development, and maintenance of software systems. This course is a great fit for those interested in a career in software engineering, as it provides a comprehensive overview of Docker and how it can be used to improve the efficiency of software engineering processes.
Software Developer
Software developers design, implement, and maintain software applications. This course is a great fit for those interested in a career in software development, as it provides a comprehensive overview of Docker and how it can be used to improve the efficiency of software development processes.
Systems Administrator
Systems administrators are responsible for the day-to-day operation and maintenance of computer systems and networks. This course may be useful for systems administrators who want to learn more about Docker and how they can use it to improve the efficiency of their systems.
Web Developer
Web developers design, implement, and maintain websites. This course may be useful for web developers who want to learn more about Docker and how they can use it to improve the efficiency of their web development processes.
Computer Systems Analyst
Computer systems analysts study an organization's current computer systems and procedures, and design changes to make them more efficient and effective. This course may be useful for computer systems analysts who want to learn more about Docker and how they can use it to improve the efficiency of their organization's systems.
Information Security Analyst
Information security analysts are responsible for protecting an organization's computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. This course may be useful for information security analysts who want to learn more about Docker and how they can use it to improve the security of their organization's systems.
Software Architect
Software architects design, implement, and maintain software systems. This course may be useful for software architects who want to learn more about Docker and how they can use it to improve the efficiency of their software designs.
Technical Support Specialist
Technical support specialists provide technical support to users of computer systems and software. This course may be useful for technical support specialists who want to learn more about Docker and how they can use it to help their users.
Network Architect
Network architects design, implement, and maintain computer networks. This course may be useful for network architects who want to learn more about Docker and how they can use it to improve the efficiency of their network designs.
IT Manager
IT managers are responsible for the planning, implementation, and management of an organization's IT systems and services. This course may be useful for IT managers who want to learn more about Docker and how they can use it to improve the efficiency of their organization's IT systems.
Database Administrator
Database administrators are responsible for the design, implementation, and maintenance of databases. This course may be useful for database administrators who want to learn more about Docker and how they can use it to improve the efficiency of their database systems.
Computer Programmer
Computer programmers write and test code that makes computers perform specific tasks. This course may be useful for computer programmers who want to learn more about Docker and how they can use it to improve the efficiency of their programming tasks.
Webmaster
Webmasters are responsible for the day-to-day operation and maintenance of websites. This course may be useful for webmasters who want to learn more about Docker and how they can use it to improve the efficiency of their website operations.
Computer and Information Research Scientist
Computer and information research scientists invent and develop new approaches to computing technology and find innovative uses for existing technology. This course may be useful for those interested in developing new Docker-based applications or using Docker to improve the efficiency of their research.

Reading list

We've selected eight 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 - Introducing Docker Essentials, Containers, and more.
Docker in Practice is the official Docker user guide and an excellent starting point for learning about Docker. It is commonly used as a textbook and industry professional reference and provides a comprehensive overview of the Docker platform, including the basics of Docker concepts, installation, and usage, as well as advanced topics like Docker Compose and Docker Swarm.
Docker Deep Dive practical guide to using Docker for building, shipping, and running distributed applications. It covers a wide range of topics, from the basics of Docker to advanced topics like Docker Swarm and Kubernetes. It valuable resource for anyone who wants to learn more about Docker and how to use it effectively.
Provides a DevOps-centric guide to Docker. It good choice for anyone who wants to learn how to use Docker in a DevOps environment.
Provides a developer-centric guide to Docker. It good choice for anyone who wants to learn how to use Docker to build and deploy applications.
Continuous Delivery with Docker and Kubernetes practical guide to using Docker and Kubernetes for continuous delivery. It covers a wide range of topics, from the basics of Docker and Kubernetes to advanced topics like continuous integration and continuous deployment. It valuable resource for anyone who wants to learn more about continuous delivery with Docker and Kubernetes.
Docker for Windows: A Quick Start Guide concise guide to using Docker on Windows. It covers the basics of Docker, as well as how to use Docker to build and run applications on Windows. It valuable resource for anyone who wants to get started with Docker on Windows.
If you are interested in a deeper dive into Kubernetes, then Kubernetes: Up and Running great resource. It detailed guide to using Kubernetes for managing containerized applications.
Docker: Up and Running comprehensive guide to using Docker. It covers a wide range of topics, from the basics of Docker to advanced topics like Docker Swarm and Kubernetes.

Share

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

Similar courses

Here are nine courses similar to Docker - Introducing Docker Essentials, Containers, and more.
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