Docker

Docker containers wrap a piece of software in a complete filesystem that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed on a server. This guarantees that the software will always run the same, regardless of its environment.

COURSES 1

WATCH Mark Shust's COURSE

Build a Twelve-Factor Node.js App with Docker

Build a Twelve-Factor Node.js App with Docker

In this course we will take a simple Node.js app that connects to a MongoDB database and uses an Express web server, and learn ...

13 lessons

Create Docker Volumes for Persistent Storage

Docker containers are stateless by default. In order to persist filesystem changes, you must use docker volumes. In this lesson, we will go over how to copy files over to Docker containers, how to ...

Mark Shust
2:04

Prune Old Unused Docker Containers and Images

In this lesson, we will look at docker container prune to remove old docker containers. We can also use docker system prune to clean up any containers, images, volumes, and networks all in one comm...

Mark Shust
0:52

Build Your Own Custom Docker Image

In this lesson we will cover how to build your own custom Docker image from scratch. We'll walk through the process of starting a Debian container, installing packages and working through configura...

Mark Shust
13:43

Download and Remove Docker Images

Learn the basics of downloading and pulling Docker images from Docker Hub. Learn the difference between default tags and version specific tags. Also learn how to display all images, and different w...

Mark Shust
1:15

Run Short-Lived Docker Containers

Learn the benefits of running one-off, short-lived Docker containers. Short-Lived containers are useful to execute one-line commands or setup scheduled tasks. We'll demonstrate setting up a cronjob...

Mark Shust
1:56

Run, Stop and Remove Docker Containers

In this lesson, we'll find out the basics of running Docker containers. We'll go over how to download images from Docker Hub, what happens when you stop containers, how to restart a container once ...

Mark Shust
1:33

Setup an Nginx Proxy for a Node.js App with Docker

Learn how to setup an Nginx proxy server with Docker that sits in front of a Node.js app. You can use a proxy to control the flow of frontend requests hitting your app, as well as to achieve better...

Mark Shust
5:40

Manage Data within Docker Volumes

Learn about the concepts of managing data within Docker volumes, including all of the commands to create and manage volumes. We'll demonstrate how to mount a Docker volume to one or many containers...

Mark Shust
4:02

Build a Simple Node.js Web Server with Docker

Learn how to build a simple Node.js web server with Docker. In this lesson, we'll create a Dockerfile for a simple Node.js script, copy and build it into a Docker image, and start a container to ru...

Mark Shust
2:01

Browse all Docker lessons.

showing All 18 lessons...

Scale Docker Horizontally with Nginx Load Balancing

P

Export Services with Docker Port Binding

P

Build, Release and Run Containers with Docker Compose

P

Run One-Off Docker Containers

P

Pipe Log Output to STDOUT with Docker

P

Run Consistent Dev, Stage & Prod Docker Environments

P

Run Stateless Docker Containers

P

Ensure Containers Run with High-Availability

P

Create Docker Volumes for Persistent Storage

P

Host a Complex Bot using Heroku and Docker

P

Prune Old Unused Docker Containers and Images

P

Build Your Own Custom Docker Image

P

Download and Remove Docker Images

P

Run Short-Lived Docker Containers

P

Run, Stop and Remove Docker Containers

P

Setup an Nginx Proxy for a Node.js App with Docker

P

Manage Data within Docker Volumes

P

Build a Simple Node.js Web Server with Docker

P
nginx tutorial about Scale Docker Horizontally with Nginx Load Balancing

Scale Docker Horizontally with Nginx Load Balancing

3:18 nginx PRO

Node.js apps built with Docker cannot scale horizontally by themselves. In this lesson we will spawn out multiple Node.js processes/containers, and move the incoming request handler to an Nginx proxy to load balance and properly scale our Node.js app.

docker tutorial about Export Services with Docker Port Binding

Export Services with Docker Port Binding

1:49 docker PRO

By default, Docker is locked down and no ports are exposed. We’ll cover how to expose ports when building your image with a Dockerfile, and how to export that port as a service when running containers.

docker tutorial about Build, Release and Run Containers with Docker Compose

Build, Release and Run Containers with Docker Compose

3:16 docker PRO

In this lesson we will cover proper version tagging when building Docker images, creating a docker-compose.yml file for proper release management, and running the tagged release by using Docker Compose to launch app resources as Docker containers.

docker tutorial about Run One-Off Docker Containers

Run One-Off Docker Containers

1:03 docker PRO

You’ll often need to execute various administrative or maintenance tasks for your app, such as database migrations or arbitrary console commands.

In this lesson, we will learn how to run arbitrary one-off commands as disposable Docker containers.

docker tutorial about Pipe Log Output to STDOUT with Docker

Pipe Log Output to STDOUT with Docker

2:06 docker PRO

Since Docker filesystems are ephemeral, it's important to take into account anything that writes or appends to disk, such as log files. It is standard practice when running Docker containers to pipe log file output to the console, to allow for simple diagnostic and to avoid append-only files from consuming disk space.

In this lesson, we’ll show you how to append output to STDOUT, and how to view log output from your running containers.

docker tutorial about Run Consistent Dev, Stage & Prod Docker Environments

Run Consistent Dev, Stage & Prod Docker Environments

1:48 docker PRO

Docker makes it easy to have near-full environment parity between dev, stage and prod. In this lesson we’ll go over a typical setup within Docker Compose, and how to manage backing services between dev, stage and prod.

docker tutorial about Run Stateless Docker Containers

Run Stateless Docker Containers

4:05 docker PRO

Docker containers should be designed to be stateless, meaning that they can survive system reboots and container terminations gracefully, and without the loss of data. Designing with stateless containers in mind will also help your app grow and make future horizontal scaling trivial.

In this lesson, we will review an app that saves uploaded files to the filesystem. Then we will learn how to setup a persistent volume for the uploaded files so they can survive Docker container halts, restarts, stops and respawns.

docker tutorial about Ensure Containers Run with High-Availability

Ensure Containers Run with High-Availability

1:43 docker PRO

A properly scaled Docker architecture should be able to kill off random containers at any time, and continue to run by implementing a crash-only design methodology. We will learn how to setup our architecture to auto-spawn new Docker containers when other containers are deemed unhealthy or in a terminated state. We will also learn how to scale containers easily with Compose in the event we need to quickly scale horizontally.

docker tutorial about Create Docker Volumes for Persistent Storage

Create Docker Volumes for Persistent Storage

2:04 docker PRO

Docker containers are stateless by default. In order to persist filesystem changes, you must use docker volumes. In this lesson, we will go over how to copy files over to Docker containers, how to create volumes and copy data to them, and also how to mount remote folders for persisting updates.

docker tutorial about Host a Complex Bot using Heroku and Docker

Host a Complex Bot using Heroku and Docker

2:36 docker PRO

We’ll learn how to host a complex Twitter bot (a bot that requires external tools that need to be installed on the system) with Heroku and Docker. We'll learn how to configure our Docker file, using an image that already has node installed on it. We'll use the Heroku Container Registry to deploy an app to heroku that was created with a local container, and deploy it as a worker app.

docker tutorial about Prune Old Unused Docker Containers and Images

Prune Old Unused Docker Containers and Images

0:52 docker PRO

In this lesson, we will look at docker container prune to remove old docker containers. We can also use docker system prune to clean up any containers, images, volumes, and networks all in one command.

docker tutorial about Build Your Own Custom Docker Image

Build Your Own Custom Docker Image

13:43 docker PRO

In this lesson we will cover how to build your own custom Docker image from scratch. We'll walk through the process of starting a Debian container, installing packages and working through configuration issues, as well as a strategy for building a Dockerfile.

docker tutorial about Download and Remove Docker Images

Download and Remove Docker Images

1:15 docker PRO

Learn the basics of downloading and pulling Docker images from Docker Hub. Learn the difference between default tags and version specific tags. Also learn how to display all images, and different ways to remove images.

docker tutorial about Run Short-Lived Docker Containers

Run Short-Lived Docker Containers

1:56 docker PRO

Learn the benefits of running one-off, short-lived Docker containers. Short-Lived containers are useful to execute one-line commands or setup scheduled tasks. We'll demonstrate setting up a cronjob from the host machine to tap into the benefits of running automated, timed scripts with Docker.

docker tutorial about Run, Stop and Remove Docker Containers

Run, Stop and Remove Docker Containers

1:33 docker PRO

In this lesson, we'll find out the basics of running Docker containers. We'll go over how to download images from Docker Hub, what happens when you stop containers, how to restart a container once it's been stopped, and also how to remove containers.

docker tutorial about Setup an Nginx Proxy for a Node.js App with Docker

Setup an Nginx Proxy for a Node.js App with Docker

5:40 docker PRO

Learn how to setup an Nginx proxy server with Docker that sits in front of a Node.js app. You can use a proxy to control the flow of frontend requests hitting your app, as well as to achieve better performance and scalability. We'll create a sample Node.js app, configure a default Nginx configuration file for proxying web requests, build both Node.js and Nginx Docker images, and learn how to link everything up and get it running with Docker specifics.

docker tutorial about Manage Data within Docker Volumes

Manage Data within Docker Volumes

4:02 docker PRO

Learn about the concepts of managing data within Docker volumes, including all of the commands to create and manage volumes. We'll demonstrate how to mount a Docker volume to one or many containers by creating and mounting a volume to an Nginx proxy, and then verify the output with curl. You'll also see how changes to files within volumes of one container propagate to other containers with the same volume mounted, and learn various commands to inspect Docker volumes.

docker tutorial about Build a Simple Node.js Web Server with Docker

Build a Simple Node.js Web Server with Docker

2:01 docker PRO

Learn how to build a simple Node.js web server with Docker. In this lesson, we'll create a Dockerfile for a simple Node.js script, copy and build it into a Docker image, and start a container to run the web server.

HEY, QUICK QUESTION!
Joel's Head
Why are we asking?