Docker — Complete Guide
Docker — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of Node.js Tutorial on Toolliyo Academy.
On this page
Docker
This lesson covers Docker. You do not need to memorize everything. Understand the flow first.
What you will learn
- What docker means — in normal words, not textbook words
- How it works step by step
- Code you can run today on your laptop
- Where teams use this in real projects
Before you start
- Software: Node.js LTS from nodejs.org, VS Code, and a terminal
- Knowledge: Earlier lessons in this Node.js course
- Previous lesson: API Testing — Complete Guide
Explain it simply
Docker packages your app and Node runtime into a container that runs the same on your laptop and in the cloud.
Why developers use this
- No "works on my machine" problems
- Easy deploy to Railway, AWS, Azure
- Standard in modern teams
How it works (step by step)
- Tests pass on your machine.
- Build a Docker image or set Node version on the host.
- Set environment variables on the server (never commit secrets).
- Hit the health URL and watch logs for the first real users.
Code example — type this yourself
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Build with docker build -t my-api . and run with docker run -p 3000:3000 my-api.
What each part does
FROM node:22-alpine— Line 1: runs as written.WORKDIR /app— Line 2: runs as written.COPY package*.json ./— Line 3: runs as written.RUN npm ci --omit=dev— Line 4: runs as written.COPY . .— Line 5: runs as written.EXPOSE 3000— Line 6: runs as written.CMD ["node", "server.js"]— Line 7: runs as written.
Real life: where Docker shows up
After tests pass locally, the team uses Docker to ship the same build to staging, then production, with the same Node version everywhere. In interviews, explain the trade-off you chose and what you would measure in production.
Try it yourself — hands-on
- Add Dockerfile to a small Express app
- Create .dockerignore with node_modules
- Build and run the container
Common mistakes (avoid these)
- COPY . . before npm ci — slow rebuilds; copy package.json first.
Interview note
Senior interviews may ask how Docker behaves under load, failure, or security review — mention logging, timeouts, and validation.
Summary
- Dockerfile describes how to build the image
- npm ci installs exact versions from lock file
- Map port 3000 with -p
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!