We may earn an affiliate commission when you visit our partners.
Course image
Bret Fisher and Docker Captain Program

2021 Update: Ready for Apple Silicon (M1 arm64) and Raspberry Pi's.

2023: Fixes still happening when needed, and the course is being maintained regularly.Welcome to the best course on the planet for using Docker with Node.js. With your basic knowledge of Docker and Node.js in hand, Docker Mastery for Node.js is a course for anyone on the Node.js path. This course will help you master them together.

Read more

2021 Update: Ready for Apple Silicon (M1 arm64) and Raspberry Pi's.

2023: Fixes still happening when needed, and the course is being maintained regularly.Welcome to the best course on the planet for using Docker with Node.js. With your basic knowledge of Docker and Node.js in hand, Docker Mastery for Node.js is a course for anyone on the Node.js path. This course will help you master them together.

I'm your instructor Bret, an Award Winning Docker Captain, DevOps community leader, and a bestselling Udemy author. I built this course for you because I live and breathe Docker containers, and I've enjoyed using Node.js since 2012. They work great together, and I'll show you how.

Learn the cutting edge features of Docker that will make your Node.js apps build faster, smaller, and run more securely and reliability. Containers and Node.js are two of the hottest and most popular topics in tech.

It's just as important to know what not to do, as well the best ways to use Node.js in Docker, and I teach a huge amount of info in this course for do's and don'ts with Node.js in Docker.

You want assignments? We go through assignments using all sorts of Node.js + Docker setups. Single-container CLI apps, database-backed web apps, Express.js, hapi.js, distributed micro-service apps, Angular, Websockets, HTTP Proxies, MongoDB with proper connection shutdown, and more.

NOTE: Be sure you know Docker basics and Node.js basics before starting this course. I suggest my Docker Mastery course first if you are new to Docker. Also read the course requirements.

"...Bret is amazing. You can tell he knows exactly what he is talking about and enjoys helping others. I have never seen someone so involved with his user base as Bret. Direct messages via slack, live youtube broadcasts, newsletters, etc. I don't know how he does it... I would seriously buy any course that Bret puts out because I have no doubts that it will be excellent." — David Olson, Udemy student, Docker Mastery course.

"Great introduction. Bret delivers great resources and instructions. He is the guy you want to learn from when it comes to Docker. The real deal. Worth the money and more." —Joseph Martinez, Udemy student, Docker Mastery course

Some of the many cool things you'll do in this course:

  • Build Node.js Images that auto-scan for security vulnerabilities

  • Use Docker's cutting-edge BuildKit with SSH Agents and NPM Caches for better image building

  • Use docker-compose with Visual Studio Code for full Node.js debug support in Docker

  • Ensure you're using all the latest features of Docker Desktop

  • Use BuildKit and Multi-stage Builds to create minimal and flexible Dockerfiles

  • Build custom Node.js images using distro's like CentOS and Alpine

  • Test Docker init, tini, and Node.js as a PID 1 process in containers

  • Create Node.js apps that properly startup and respond to healthchecks

  • Build graceful shutdown code into your apps for zero-downtime deploys

  • Dig into HTTP connections with orchestration, and how Proxies can help

  • Study examples of Docker Swarm and Kubernetes deployments for Node.js

  • Migrate traditional (legacy) Node.js apps into containers

  • Simplify your microservice solutions with advanced Docker Compose features

"Bret is a naturally born instructor, docker and swarm GURU...Bret gives clear and unbiased recipes for real world scenarios of handling docker files." — Marciej Domanski, Udemy student, Docker Mastery course.

"This speaker is powerful. ...The speaker instantly gained my excitement and favor which is exactly what I was hoping would happen. This excellent connection makes it easy for me to follow along." — Kendra, Udemy student, Docker Mastery course.

Extra things that come with this course:

  • Access to the course Slack Chat team, for getting help/advice from me and other students.

  • Weekly YouTube Live Q&A's where you can ask me questions live.

  • Bonus videos I put elsewhere like YouTube and share via Udemy announcements.

  • Tons of reference links to supplement this content.

  • Updates to content as products change their features on these topics.

What you will learn in this course:

You'll start with a quick review about getting set up with Docker, as well as Docker Compose basics. That way we're on the same page for the basics.

Then you'll jump into Node.js Dockerfile basics, that way you'll have a good Dockerfile foundation for new features we'll add throughout the course.

You'll be building on all the different things you learn from each Lecture in the course. Once you have the basics down of Compose, Dockerfile, and Docker Image, then you'll focus on nuances like how Docker and Linux control the Node process and how Docker changes that to make sure you know what options there are for starting up and shutting down Node.js and the right way to do it in different scenarios.

We'll cover advanced, newer features around making the Dockerfile the most efficient and flexible as possible using things like BuildKit and Multi-stage.

Then we'll talk about distributed computing and cloud design to ensure your Node.js apps have 12-factor design in your containers, as well as learning how to migrate old apps into this new way of doing things.

Next we cover Compose and its awesome features to get really efficient local development and test set-up using the Docker Compose command line and Docker Compose YAML file.

With all this knowledge, you'll progress to production concerns and making images production-ready.

Then we'll jump into deploying those containers and running them in production. Whether you use Docker Engine or orchestration with Kubernetes or Swarm, I've got you covered. In addition, we'll cover HTTP connections and reverse proxies for connection handling and routing with multi-container systems.

Lastly, you'll get a final, big assignment where you'll be building and deploying a large, complex solution, including multiple Node.js containers that are doing different things. You'll build Docker images, Dockerfiles, and compose files, and deploy them to a server to test. You'll need to check whether connections failover properly. You'll basically take everything you've learned and apply it in one big project.

"Bret knows, lives, breaths and loves his technology stack. The passion and belief always comes through in all of his courses which is why I will always recommend his work." — Steven Hunt, Udemy student, Docker Swarm Mastery course

Why should you learn from me?

  • I'm A Practitioner. Welcome to the real world: I've got more than 20 years of sysadmin and developer experience, over 30 certifications, and have been using Docker and Node.js for myself and my consulting clients since their early days. With me, you’re learning from someone who's helped run many hundreds of container apps across dozens of projects and organizations.

  • I'm An Educator. With me, you’ll learn from someone who knows how to make a syllabus: I want to help you. People say I'm good at it. I won a 2018 Leadership Award at DockerCon for helping others learn. For the last few years I've trained thousands of people on using Docker in workshops, conferences and meetups. See me teach at events like DockerCon, O'Reilly Velocity, GOTO, and Linux Open Source Summit.

  • I Lead Communities. Also, I'm a Docker Captain, which means Docker Inc. thinks I know a thing or two about Docker and that I do well in sharing it with others. In the real-world: I run two local meetups in our fabulous tech community in Norfolk/Virginia Beach USA. I help online: usually in Slack and Twitter, where I learn from and help others.

"This is the best teacher i know, not because he teaches me, but because he forces me to learn for myself in the framework he has set." — Fabian Letsch, Udemy student, Docker Mastery course.

Giving Back: a portion of my profit on this course will be donated to supporting open source and protecting our freedoms online. This course is only made possible by the amazing people creating open source. I'm standing on the shoulders of (open source) giants. Donations will be split between my favorite charities including the Electronic Frontier Foundation and Free Software Foundation. Look them up. They're awesome.

This is a living course, and will be updated as features and workflows change.

This course is designed to be fast at getting you started but also get you deep into the "why" of things. Simply the fastest and best way to learn the latest docker skills. Look at the scope of topics in the Sessions and see the breadth of skills you will learn.

Also included is a private Slack Chat group and weekly Live YouTube Q&A for getting help with this course and continuing your Docker, Node.js, and DevOps learning with help from me and other students.

Thanks so much for considering this course. Come join me and thousands of others in this course (and my others) for learning the latest DevOps tech. - Bret

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Optimize your local development setup for nodejs in docker
  • Operate smoothly in a team of nodejs developers using docker and compose
  • Improve the speed and reliability of your node builds and testing using docker
  • Get the best nodejs tweaks to use for dev, test, and prod
  • Design nodejs images for use with kubernetes and swarm
  • Learn about security scanning and locking-down your nodejs apps

Syllabus

Introduction and Course Resources
Introduction and Course Roadmap

Learn All The Ways This Course Helps You Learn

Download Course Resources (GitHub Repo)
Read more
Course Chat with Students Learning Containers
Weekly YouTube Live Q&A with Bret
Docker Compose Basics

Learn why compose is so important to your development and test workflow.

Verify you have the latest tools

Improving your docker workflow

Learn the compose file basics for using YAML to describe your container setup.

Learn the docker-compose CLI basics: the key commands you need to get productive.

Your first assignment! Practice useful compose commands you'll use throughout this course.

Assignment Answers: I run through the assignment and talk about why I'm doing the answer my way.

Let's start our Dockerfiles with some base Node and Docker best practices
Section Intro: Dockerfile Best Practice Basics

Learn the key first steps to making clean and lean Node.js Dockerfiles.

Learn the various Node.js options for base images, and which one's right for you.

Helping you decide which of the "big three" official images to start with.

Practice making a custom base image on an enterprise base image.

Assignment Answers: Making a CentOS Node Image

Least Privilege Security With node User

WORKDIR feature change in next video

Details on Least Privilege Users

Learn more about tricks to keep your images fast and small.

Controlling The Node Process In Containers
Section Intro: Controlling The Node Process

Learn the importance of controlling node startup details

Let's clear up the confusion about how you should start node in containers

Learn why node shutdown is just as important as startup

Practice writing dockerfiles with the things you just learned

Assignment Answers: Writing Node Dockerfiles

Practice shutting down node in various ways

Assignment Answers: Testing Graceful Shutdowns
Advanced Dockerfiles with Multi-stage and BuildKit
Section Intro: Advanced Node Dockerfiles
NPM command changes

Learn a great new way to make Dockerfiles even more flexible and small.

Learn more ways multi-stage Dockerfiles can help.

Practice making multi-stage node solutions

Assignment Answers: Building a 3-Stage Dockerfile

Learn how the latests features in Docker can make builds even better: BuildKit + Multi-stage.

Learn about the latest BuildKit features

Cloud Native and Distributed App Guidelines For Getting The Most Out Of Docker
Section Intro: Node Apps in Cloud Native Docker

Learn the basics of app design for distributed computing in the cloud.

Understand the reason and details about how to manage multiple environment configs in your apps and containers.

Learn how to design your Node.js apps for proper container logging.

Understand the importance of the dockerignore file and how to make one.

Practice taking an older Node.js app and make it work in a container.

Assignment Answers Migrating Traditional Apps
Use Docker Compose to enhance your local development experience.
Section Intro: Compose for Awesome Local Development

Do's and Don'ts for Docker Compose

Understand your options for improving file performance using bind-mounts in macOS and Windows.

Keeping host dependencies out of images

Ways to use dependencies with local development

Running commands and shells in compose

How to use nodemon in containers for local development

Compose features for multi-service apps

Wait properly For dependencies

Advanced ways to improve your compose files

Learn how to use proxies and other local development features for microservice apps

Getting all your editing tools working with docker

Practice building a real-world example of compose for full featured local development

Assignment Answers: Building a Sweet Compose File
Making Container Images Production Ready
Section Intro: Making Container Images Production Ready

Keeping unnecessary files out of production

Being a good container citizen

Use docker build as a CI tool

Adding security features to docker builds

Automate all the things!

Always, always, have healthchecks

Practice what you've learned in this section

Assignment Answers: Making Your Ultimate Node.js Dockerfile

More answers on the BONUS section of the assignment

Running Production Node.js Containers
Section Intro

Running multiple copies of a container on servers

Understanding docker compose limitations

How proxy requirements change with containers and microservices

Handing rolling updates in deployments

Managing phases of a containers lifetime

Using stack files for multi-service apps

Running Node.js on ARM with Docker
The State of ARM and Docker for Node.js

See how easy it is to run Arm-based apps on macOS and Windows

Running Arm apps on servers

See what plans Docker and Arm have for developers and operators

Extra resources, videos, and content outside of this course

Watch my highly-rated conference talks from DockerCon

Listen to my DevOps podcast on the go!

Continue your container learning with coupons for my other courses.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
It's impactful for Node.js professionals who want to develop, debug, and deploy Node.js-based web applications using Docker
It's helpful for professionals who want to create and manage Docker images, containers and compose files for Node.js development
It's valuable for developers who want to host and deploy Docker containers in production
It's useful for developers who want to optimize and secure Node.js applications in Docker
It's impactful for developers who want to build and deploy Node.js-based microservices using Docker
Students will benefit from the industry experience of the instructor, Bret Fisher, an award-winning Docker Captain

Save this course

Save Docker for Node.js Projects From a Docker Captain to your list so you can find it easily later:
Save

Reviews summary

Docker captain's node.js projects course

Learners say that this Docker course is "very well built" and offers a hands-on approach to developing Docker containers for Node.js projects. It focuses on presenting tips and tools for the DevOps process, and it is taught by an instructor that learners describe as "excellent" and "knowledgeable about the material."
"Real-world" approach to Docker.
"This course takes a hands-on approach to teaching Docker."
"The course is very well built and offers a real-world approach to Docker."
"I really enjoyed listening and following Bret as he walked through the process of developing Docker containers for Node.js projects."
Knowledgeable instructor.
"Bret is excellent."
"The instructor is very knowledgeable about the material."
"The instructor is always available to answer questions."

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 for Node.js Projects From a Docker Captain with these activities:
Review core Docker concepts and commands
Ensure a strong foundation in Docker by reviewing key concepts and commands, refreshing the understanding of its core functionality.
Show steps
  • Review official Docker documentation or tutorials.
  • Run basic Docker commands in a terminal or command prompt.
Connect with Docker experts and experienced Node.js developers
Accelerate learning by seeking guidance from experienced individuals who can provide valuable insights and support throughout the course.
Show steps
  • Reach out to Docker community forums and online groups.
  • Attend virtual meetups and conferences related to Docker and Node.js.
  • Contact potential mentors directly via LinkedIn or other professional networking platforms.
Participate in study groups or online forums related to Docker and Node.js
Enhance understanding and expand knowledge by engaging in discussions and collaborative learning with peers, exchanging ideas and perspectives.
Show steps
  • Join online study groups or forums dedicated to Docker and Node.js.
  • Participate in discussions, ask questions, and share knowledge.
Two other activities
Expand to see all activities and additional details
Show all five activities
Develop a Node.js microservices application using Docker Compose
Build a solid understanding of microservices architecture and Docker Compose by creating a Node.js application consisting of multiple interconnected services.
Show steps
  • Design and define the microservices architecture for the application.
  • Implement the individual microservices using Node.js and Docker containers.
  • Create a Docker Compose file to orchestrate and manage the microservices.
  • Test and debug the application, ensuring proper communication and functionality.
Build a Node.js-based CI/CD pipeline using Docker
Gain practical experience in setting up a CI/CD pipeline for a Node.js application by leveraging Docker to automate the build, test, and deployment processes.
Browse courses on CI/CD Pipelines
Show steps
  • Choose a CI/CD platform and integrate it with the Node.js project.
  • Define the build, test, and deployment stages in the CI/CD pipeline.
  • Configure Docker-based actions or tasks within the pipeline for image building and deployment.
  • Implement automated testing and quality checks within the pipeline.
  • Monitor and troubleshoot the CI/CD pipeline for continuous delivery.

Career center

Learners who complete Docker for Node.js Projects From a Docker Captain will develop knowledge and skills that may be useful to these careers:
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. They work to ensure that code is released quickly and efficiently, while also maintaining the stability and security of the production environment. This course is a great fit for those looking to become DevOps Engineers because it provides a comprehensive understanding of Docker, a key technology for containerization and DevOps.
Cloud Architect
Cloud Architects design and manage cloud computing systems. They work with a variety of cloud technologies, including Docker and Kubernetes. This course is a great fit for those looking to become Cloud Architects because it provides a deep understanding of Docker, a key technology for containerization in the cloud.
Cloud Developer
Cloud Developers design and develop applications for the cloud. They work with a variety of cloud technologies, including Docker and Kubernetes. This course is a great fit for those looking to become Cloud Developers because it provides a deep understanding of Docker, a key technology for containerization in the cloud.
Systems Engineer
Systems Engineers are responsible for the design, implementation, and maintenance of computer systems. They work with a variety of technologies, including Docker and Kubernetes. This course is a great fit for those looking to become Systems Engineers because it provides a comprehensive understanding of Docker, a key technology for containerization.
Site Reliability Engineer
Site Reliability Engineers are responsible for the reliability and performance of websites and applications. They work with a variety of technologies, including Docker and Kubernetes. This course is a great fit for those looking to become Site Reliability Engineers because it provides a deep understanding of Docker, a key technology for containerization.
Data Engineer
Data Engineers design and manage data pipelines. They work with a variety of data technologies, including Docker and Kubernetes. This course is a great fit for those looking to become Data Engineers because it provides a deep understanding of Docker, a key technology for containerization in the data engineering field.
Full-Stack Developer
Full Stack Developers are responsible for both the front-end and back-end development of websites and applications. They work with a variety of technologies, including HTML, CSS, JavaScript, and Node.js. This course is a great fit for those looking to become Full Stack Developers because it provides a strong foundation in Node.js, as well as an understanding of Docker, a key technology for containerization.
Software Engineer
Software Engineers design, develop, and maintain software systems. They work with a variety of technologies, including Docker and Kubernetes. This course is a great fit for those looking to become Software Engineers because it provides a strong foundation in Docker, a key technology for containerization.
Security Engineer
Security Engineers are responsible for the security of computer systems and networks. They work with a variety of security technologies, including Docker and Kubernetes. This course is a great fit for those looking to become Security Engineers because it provides a comprehensive understanding of Docker, a key technology for containerization.
Web Developer
Web Developers design and develop websites and web applications. They work with a variety of technologies, including HTML, CSS, JavaScript, and Node.js. This course is a great fit for those looking to become Web Developers because it provides a strong foundation in Node.js, as well as an understanding of Docker, a key technology for containerization.
Backend Developer
Backend Developers create and maintain the server-side logic for websites and applications. They work with databases, servers, and other technical infrastructure to ensure that data is stored, processed, and delivered efficiently. This course is a great foundation for those looking to become Backend Developers because it provides a deep understanding of Docker and Node.js, two essential technologies for modern web development.
Quality Assurance Analyst
Quality Assurance Analysts test software and hardware products to ensure that they meet quality standards. They work with a variety of technologies, including Docker and Kubernetes. This course may be useful for those looking to become Quality Assurance Analysts because it provides a deep understanding of Docker, a key technology for containerization.
Technical Writer
Technical Writers create documentation for software and hardware products. They work with a variety of technologies, including Docker and Node.js. This course may be useful for those looking to become Technical Writers because it provides a deep understanding of Docker and Node.js, two important technologies for which documentation is needed.
Project Manager
Project Managers plan and manage software development projects. They work with a variety of technologies, including Docker and Kubernetes. This course may be useful for those looking to become Project Managers because it provides a comprehensive understanding of Docker, a key technology for containerization.
Business Analyst
Business Analysts gather and analyze business requirements. They work with a variety of stakeholders, including developers, testers, and end-users. This course may be useful for those looking to become Business Analysts because it provides a deep understanding of Docker and Node.js, two important technologies for understanding the technical aspects of business requirements.

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 for Node.js Projects From a Docker Captain.
Provides a comprehensive overview of Node.js, from its basics to advanced topics. It is suitable for readers who are new to Node.js and want to learn everything they need to know about it.
Provides a guide to building microservices with Node.js and Docker. It covers topics such as containerization, service discovery, and load balancing. It is suitable for readers who want to learn how to build and deploy microservices with Node.js and Docker.
Provides a practical guide to using Docker in real-world scenarios. It covers topics such as building and managing Docker images, deploying Docker containers, and troubleshooting Docker issues. It is suitable for readers who want to learn how to use Docker effectively in their own projects.
Provides a guide to reactive programming with Node.js. It covers topics such as streams, observables, and backpressure. It is suitable for readers who want to learn how to write code that is responsive, scalable, and efficient.
Provides a collection of design patterns for Node.js applications. It is suitable for readers who have some experience with Node.js and want to learn how to write clean, maintainable, and scalable code.
Provides a good overview of the technical aspects of Docker, including its architecture, features, and best practices. It is suitable for readers who are familiar with the basics of Docker and want to learn more about its inner workings.

Share

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

Similar courses

Here are nine courses similar to Docker for Node.js Projects From a Docker Captain.
Docker Mastery: with Kubernetes +Swarm from a Docker...
Most relevant
Developing Node.js Apps with Docker
Most relevant
Docker Swarm Mastery: DevOps Style Cluster Orchestration
Most relevant
Docker - Introducing Docker Essentials, Containers, and...
Most relevant
Docker Bootcamp: Conquer Docker with Real-World Projects
Most relevant
Kubernetes Mastery: Hands-On Lessons From A Docker Captain
Most relevant
Preparing Docker Apps for Production
Most relevant
Docker Deep Dive
Most relevant
Developing .NET Framework Apps 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