Docker for Node.js Projects From a Docker Captain

Docker for Node.js Projects From a Docker Captain

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 8 Hours | 9.87 GB

Build, test, deploy Node for Docker, Kubernetes, Swarm, and ARM with the latest DevOps practices from a container expert

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.

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

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!

What you’ll learn

  • 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
Table of Contents

Introduction and Course Resources
1 Introduction and Course Roadmap
2 Getting The Most Out Of This Course
3 Download Course Resources (GitHub Repo)
4 Course Slack Chat 21k Students Learning Containers
5 Weekly YouTube Live QA with Bret

Docker Compose Basics
6 Section Intro Compose Basics
7 Getting The Right Docker and Compose Versions
8 Why Compose
9 Compose File Format
10 docker-compose CLI
11 Assignment Compose CLI Basics
12 Assignment Answer Compose CLI Basics

Node Dockerfile Best Practice Basics
13 Section Intro Dockerfile Best Practice Basics
14 Dockerfile Best Practice Basics
15 FROM Base Image Guidelines
16 When To Use Alpine Debian or CentOS Images
17 Assignment Making a CentOS Node Image
18 Assignment Answers Making a CentOS Node Image
19 Running Non-root Container Users
20 Working With The Node User Limits
21 Making Images Efficiently

Controlling The Node Process In Containers
22 Section Intro Controlling The Node Process
23 Node Process Management
24 The Truth About the PID 1 Problem
25 Proper Node Shutdown Options
26 Assignment Writing Node Dockerfiles
27 Assignment Answers Writing Node Dockerfiles
28 Assignment Testing Graceful Shutdowns
29 Assignment Answers Testing Graceful Shutdowns

Advanced Dockerfiles with Multi-stage and BuildKit
30 Section Intro Advanced Node Dockerfiles
31 Multi-stage Docker Builds
32 More Multi-stage Uses
33 Assignment Building A 3-Stage Dockerfile
34 Assignment Answers Building a 3-Stage Dockerfile
35 BuildKit The Next Gen Builder
36 Using BuildKit to Enable SSH Keys for Private NPM Repositories
37 Using BuildKit to Reuse NPM Cache

Node Apps in Cloud Native Docker
38 Section Intro Node Apps in Cloud Native Docker
39 Cloud Native App Guidelines
40 Twelve Factor Apps – Config
41 Twelve Factor Apps – Logs
42 The .dockerignore File
43 Assignment Migrating Traditional Apps
44 Assignment Answers Migrating Traditional Apps

Compose for Awesome Local Development
45 Section Intro Compose for Awesome Local Development
46 Compose Project Tips
47 Bind-Mounting Code Optimizing for Performance
48 Node Modules In Images
49 Node Modules In Bind-Mounts
50 NPM Yarn and Other Tools in Compose
51 File Monitoring and Node Auto Restarts
52 Startup Order and Dependencies
53 Healthchecks for depends on
54 Shrinking Compose Files and DRY YAML
55 Making Microservices Easier with Compose
56 VS Code Debugging and TypeScript
57 Assignment Building a Sweet Compose File
58 Assignment Answers Building a Sweet Compose File

Making Container Images Production Ready
59 Section Intro Making Container Images Production Ready
60 Avoiding devDependencies In Prod
61 Dockerfile Comments Arguments and Labels
62 Running Tests During Image Builds
63 Security Scanning During Image Build
64 CI Automated Testing and Proper Image Tags
65 Adding Healthchecks
66 Assignment Making Your Ultimate Node.js Dockerfile
67 Assignment Answers Making Your Ultimate Node.js Dockerfile
68 Assignment Answers BONUS Making Your Ultimate Node Dockerfile

Running Production Node.js Containers
69 Section Intro
70 Node.js Multi-Threaded Concerns
71 Why Not Use Compose In Production
72 Node.js Containers With Proxies
73 Container Replacement and Connection Management
74 Node.js With Container Orchestration
75 Node.js With Docker Swarm

Running Node.js on ARM with Docker
76 The State of ARM and Docker for Node.js
77 Running Node.js ARM Containers For Development
78 Running Node.js ARM Container for Production
79 The Future of Multi-Arch Docker Making ARM Easier

Extras
80 Brets DockerCon Talks on Production Docker
81 Brets DevOps and Docker Podcast
82 Bonus