Docker: containers for hosting a Node application
What a container actually is, when to do without one, and how to put a Node application and its database behind a reverse proxy without exposing the machine.
A container is a process, not a machine, and almost everything that surprises people about Docker follows from that one sentence. This course builds an image for a Node application, separates the data from the container that writes it, and assembles the application and its database with Compose — starting from the question most tutorials skip, which is whether you need Docker on this server at all.
What you will be able to do
- Tell an image, a container and a volume apart, and decide whether Docker earns its place on your server
- Install Docker from the official repository rather than the distribution's package
- Write a multi-stage Dockerfile for a Node application that does not run as root
- Separate data from the container, and publish a port without going around your firewall
- Describe an application and its database in a `compose.yaml` that really waits for the database
Outline
- 01
What a container is, and what it costs
The model first, the install second — and an honest reason not to install Docker at all.
- 02
Your application in a container
Build the image, get the data out of the container, and describe the whole thing in one file.
Technical content last reviewed on 3 August 2026
