🐳 “Build, Ship, and Run Any App, Anywhere.” – Docker

In this article, you'll learn what Docker is, how containers work, and get a hands-on tutorial to dockerize your first app.


🧱 What is Docker?

Docker is an open-source platform that automates the deployment of applications inside lightweight, portable containers. Containers package your code along with all its dependencies, ensuring consistency across environments.


📦 What is a Container?

A container is a standardized unit of software that includes application code, libraries, and the runtime environment. Unlike virtual machines, containers share the host OS kernel, making them fast and efficient.

🔍 Container vs Virtual Machine

🔧 Feature 🐳 Container 🖥️ Virtual Machine
⏱️ Boot Time Seconds Minutes
🧠 OS Shared Separate
📉 Resource Usage Low High
🌍 Portability Very High Moderate

🗂️ Key Docker Concepts

  • 🛠️ Dockerfile – Script containing instructions to build a Docker image.
  • 📷 Image – Read-only blueprint for a container.
  • 🚀 Container – A running instance of an image.
  • ☁️ Docker Hub – Public registry for storing and sharing Docker images.

🧾 Example Dockerfile

FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "index.js"]

🧰 Installing Docker

  1. Visit 👉 Docker Desktop
  2. Download Docker for your OS (Windows/macOS/Linux)
  3. Follow the installation steps
  4. Verify installation:
docker --version

🚀 Your First Docker App

🏗️ Project Structure

my-app/
├── Dockerfile
├── index.js
└── package.json

index.js

console.log("Hello from Docker!");

package.json

{
  "name": "docker-test",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  }
}

🛠️ Dockerfile

FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]

🏃‍♂️ Build & Run

To build and run your Docker app:

docker build -t my-docker-app .
docker run my-docker-app

🧹 Cleaning Up

To stop and remove all containers and images:

docker stop $(docker ps -q)
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)

✅ Why Use Docker?

  • Consistency across dev and production
  • Isolation of applications
  • Scalability for microservices architecture
  • Faster start-up times than VMs

📚 Further Reading


🎯 Conclusion

Docker revolutionizes application deployment. By mastering containers, you'll streamline your development workflow and ensure your apps run reliably anywhere.

Happy coding! 👨‍💻🚀


If you're interested in this topic, also check out IaC (Infrastructure as Code).

Posted on May 3, 2025