Introduction
Containerization has revolutionized modern software development by streamlining how applications are built, deployed, and maintained. In this guide, you'll learn how to containerize a simple Node.js Todo List Manager using Docker. By encapsulating the app and its dependencies into a container, you’ll gain consistency across environments, simplify deployment workflows, and enhance scalability.
Whether you're exploring Docker for the first time or brushing up on containerization fundamentals, this hands-on project will walk you through transitioning an app from a local setup to a fully containerized solution.
What You’ll Need
Before diving in, make sure your system is equipped with the following tools:
- Docker Desktop (latest version): For building, running, and managing containers.
- Git client: To clone the project repository and handle version control.
- Code editor or IDE: Preferably Visual Studio Code for editing project files.
- (Optional but helpful) Basic familiarity with terminal or command-line usage.
Step 1 : Get the app
- Steps to Get the App and Run it in Visual Studio Code
- Open Visual Studio Code
Open the Terminal
Clone the Application Repository
In the terminal, type the following command and press Enter:
git clone https://github.com/docker/getting-started-app.git

Navigate into the App Folder cd getting-started-app
View the contents of the cloned repository. You should see the following files and sub-directories.

Step 2 : Build image
To build the image, you'll need to use a Dockerfile. A Dockerfile is simply a text-based file with no file extension that contains a script of instructions. Docker uses this script to build a container image.
- In the getting-started-app directory, the same location as the package.json file, create a file named Dockerfile with the following contents:
This Dockerfile starts off with a node:lts-alpine base image, a light-weight Linux image that comes with Node.js and the Yarn package manager pre-installed. It copies all of the source code into the image, installs the necessary dependencies, and starts the application.

Build the image using the following commands:
docker build -t getting-started-app .
Step 3: Start an app container
Now that you have an image, you can run the application in a container using the docker run command.
Run your container using the docker run command and specify the name of the image you just created:
docker run -d -p 127.0.0.1:3000:3000 getting-started

- After a few seconds, open your web browser to http://127.0.0.1:3000. You should see your app.
Conclusion
Upon completing this project, you’ll have elevated a basic Node.js Todo List Manager into a fully containerized application. Along the way, you’ll build practical expertise in Docker — mastering commands, crafting images, and managing containers. These are essential capabilities for today’s DevOps practices and cloud-native development. More than just a technical exercise, this project empowers you to confidently deploy applications that are scalable, portable, and production-ready in diverse environments.




Top comments (0)