← Back to blog
21 March 20262 min read

Docker Basics - A Practical Guide for Beginners

Learn the fundamentals of Docker, including containers, images, and how to run your first application using Docker.

DockerDockerContainersDevOpsMicroservices

🚀 Introduction

Docker has become a standard tool in modern software development. It helps developers package applications and their dependencies into containers, ensuring consistency across environments.

Whether you're building microservices or deploying a simple app, understanding Docker basics is essential.


🧠 What is Docker?

Docker is a platform that allows you to:

  • Package applications into containers
  • Run them consistently across different environments
  • Simplify deployment and scaling

👉 Think of Docker as a lightweight virtual machine, but faster and more efficient.


📦 Key Concepts

1. Container

A container is a lightweight, standalone package that includes:

  • Application code
  • Runtime
  • Libraries
  • Dependencies

Containers run the same way everywhere.


2. Image

An image is a blueprint for creating containers.

  • Read-only
  • Built using a Dockerfile
  • Can be shared via Docker Hub

3. Dockerfile

A Dockerfile is a script that defines how to build an image.

Example:

FROM node:18

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

CMD ["node", "index.js"]

  1. Docker Hub

A public registry where you can: • Pull existing images • Push your own images

Example:

docker pull nginx

⚙️ Basic Docker Commands

Check Docker version

docker --version

Pull an image

docker pull nginx

Run a container

docker run -d -p 8080:80 nginx

👉 Access via: http://localhost:8080

List running containers

docker ps

Stop a container

docker stop <container_id>

🛠️ Build and Run Your Own App

Step 1: Create a simple Node.js app

// index.js
const http = require('http');

http
  .createServer((req, res) => {
    res.end('Hello from Docker!');
  })
  .listen(3000);

Step 2: Create Dockerfile

FROM node:18

WORKDIR /app

COPY . .

CMD ["node", "index.js"]

Step 3: Build image

docker build -t my-app .

Step 4: Run container

docker run -p 3000:3000 my-app

👉 Open: http://localhost:3000

🧩 Why Docker Matters

✅ Consistency

Works the same on: • Local machine • CI/CD pipeline • Production

✅ Isolation

Each container runs independently: • No dependency conflicts • Cleaner environments

✅ Scalability

Easily scale services using: • Docker Compose • Kubernetes

⚡ Common Use Cases • Microservices architecture • CI/CD pipelines • Local development environments • Cloud deployments

🧠 Best Practices • Keep images small (use alpine base images) • Use .dockerignore • Avoid running as root • Use multi-stage builds for production

📌 Conclusion

Docker simplifies how we build, ship, and run applications.

By mastering the basics: • Images • Containers • Dockerfile • Commands

👉 You unlock a powerful tool for modern development workflows.

Support My Work

If you've enjoyed my content and found it helpful, consider buying me a coffee. It keeps me caffeinated and creating!

Buy me a coffee