4.81 out of 5
108 reviews on Udemy

Docker for Node.js Projects From a Docker Captain

Build, test, deploy Node for Docker, Kubernetes, Swarm, and ARM with the latest DevOps practices from a container expert
Bret Fisher
1,266 students enrolled
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

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 in 2019 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

Introduction and Course Resources

Introduction and Course Roadmap
Getting The Most Out Of This Course

Learn All The Ways This Course Helps You Learn

Download Course Resources (GitHub Repo)
Course Slack Room: Chat Live With Bret, TA's, and Other Students
Weekly YouTube Live Q&A with Bret

Docker Compose Basics

Section Intro: Compose Basics

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

Getting The Right Docker and Compose Versions

Verify you have the latest tools

Why Compose?

Improving your docker workflow

Compose File Format

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

docker-compose CLI

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

Assignment: Compose CLI Basics

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

Assignment Answer: Compose CLI Basics

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

Node Dockerfile Best Practice Basics

Section Intro: Dockerfile Best Practice Basics
Dockerfile Best Practice Basics

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

FROM Base Image Guidelines

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

When To Use Alpine, Debian, or CentOS Images

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

Assignment Making a CentOS Node Image

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

Assignment Answers: Making a CentOS Node Image
Running Non-root Container Users

Least Privilege Security With node User

Working With The Node User Limits

Details on Least Privilege Users

Making Images Efficiently

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

Controlling The Node Process In Containers

Section Intro: Controlling The Node Process
Node Process Management

Learn the importance of controlling node startup details

The Truth About the PID 1 Problem

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

Proper Node Shutdown Options

Learn why node shutdown is just as important as startup

Assignment: Writing Node Dockerfiles

Practice writing dockerfiles with the things you just learned

Assignment Answers: Writing Node Dockerfiles
Assignment: Testing Graceful Shutdowns

Practice shutting down node in various ways

Assignment Answers: Testing Graceful Shutdowns

Advanced Dockerfiles with Multi-stage and BuildKit

Section Intro: Advanced Node Dockerfiles
Multi-stage Docker Builds

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

More Multi-stage Uses

Learn more ways multi-stage Dockerfiles can help.

Assignment: Building A 3-Stage Dockerfile

Practice making multi-stage node solutions

Assignment Answers: Building a 3-Stage Dockerfile
BuildKit, The Next Gen Builder

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

Using BuildKit to Enable SSH Keys for Private NPM Repositories

Learn about the latest BuildKit features

Using BuildKit to Reuse NPM Cache

Learn about the latest BuildKit features

Node Apps in Cloud Native Docker

Section Intro: Node Apps in Cloud Native Docker
Cloud Native App Guidelines

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

Twelve Factor Apps - Config

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

Twelve Factor Apps - Logs

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

The .dockerignore File

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

Assignment Migrating Traditional Apps

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

Assignment Answers Migrating Traditional Apps

Compose for Awesome Local Development

Section Intro: Compose for Awesome Local Development
Compose Project Tips

Do's and Don'ts for Docker Compose

Bind-Mounting Code, Optimizing for Performance

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

Node Modules In Images

Keeping host dependencies out of images

Node Modules In Bind-Mounts

Ways to use dependencies with local development

NPM, Yarn and Other Tools in Compose

Running commands and shells in compose

File Monitoring and Node Auto Restarts

How to use nodemon in containers for local development

Startup Order and Dependencies

Compose features for multi-service apps

Healthchecks for depends_on

Wait properly For dependencies

Shrinking Compose Files and DRY YAML

Advanced ways to improve your compose files

Making Microservices Easier with Compose

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

VS Code, Debugging and TypeScript

Getting all your editing tools working with docker

Assignment: Building a Sweet Compose File

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
Avoiding devDependencies In Prod

Keeping unnecessary files out of production

Dockerfile Comments, Arguments, and Labels

Being a good container citizen

Running Tests During Image Builds

Use docker build as a CI tool

Security Scanning During Image Build

Adding security features to docker builds

CI Automated Testing and Proper Image Tags

Automate all the things!

Adding Healthchecks

Always, always, have healthchecks

Assignment: Making Your Ultimate Node.js Dockerfile

Practice what you've learned in this section

Assignment Answers: Making Your Ultimate Node.js Dockerfile
Assignment Answers BONUS: Making Your Ultimate Node Dockerfile

More answers on the BONUS section of the assignment

Running Production Node.js Containers

Section Intro
Node.js Multi-Threaded Concerns

Running multiple copies of a container on servers

Why Not Use Compose In Production?

Understanding docker compose limitations

Node.js Containers With Proxies

How proxy requirements change with containers and microservices

Container Replacement and Connection Management

Handing rolling updates in deployments

Node.js With Container Orchestration

Managing phases of a containers lifetime

Node.js With Docker Swarm

Using stack files for multi-service apps

Running Node.js on ARM with Docker

The State of ARM and Docker for Node.js
Running Node.js ARM Containers For Development

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

Running Node.js ARM Container for Production

Running Arm apps on servers

The Future of Multi-Arch Docker: Making ARM Easier

See what plans Docker and Arm have for developers and operators


Bret's DockerCon Talks on Production Docker

Watch my highly-rated conference talks from DockerCon

Bret's DevOps and Docker Podcast

Listen to my DevOps podcast on the go!


Coupons for all my other courses!

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.8 out of 5
108 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


8 hours on-demand video
10 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion