Skip to main content
Development

Containers Are Amazing — Until They Aren't

Shivaling Sannalli
Quality Engineering Lead
August 10, 2024
6 min read
DockerDevOpsDevelopmentContainersLocal Development

It began beautifully. `docker-compose up` and my entire application came alive—database, cache, services, all working together. No "works on my machine" problems. I was in love with Docker.

Then things changed. My laptop fans started screaming. Apps crawled. I spent more time managing containers than writing code. This is that story.

Phase 1: The Love Phase

❤️ Docker Magic

Honeymoon Period

  • ✅ `docker-compose up` - Everything just works
  • ✅ No environment setup headaches
  • ✅ Consistent across team members
  • ✅ Easy to replicate production environment
  • ✅ Clean, isolated development

"This is amazing! Why didn't I use Docker sooner?"

Phase 2: The Pain Phase

😰 When Reality Hits

The Slowdown

  • ❌ Laptop fans constantly screaming
  • ❌ 8GB+ RAM consumed by containers
  • ❌ Hot reload taking 10+ seconds
  • ❌ Database queries slower than molasses
  • ❌ `docker-compose down` deleting volumes accidentally
  • ❌ More time debugging Docker than code

"I'm not using Docker anymore—I'm managing it."

The Shopping Mall Analogy

Phase 3: The Realization Phase

💡 Finding Balance

✓

The Solution

Install common, stable tools locally. Use Docker only when you need it.

My Rule of Thumb

📏 When to Use Containers

Conclusion

Docker isn't the problem—overusing it is. Containers are a tool, not a religion.

Use Docker where it empowers you. Skip it when it slows you down. Sometimes the best solution is the simplest one: running software directly on your machine.

Now I have both scripts ready. When I need containers, they're there. When I need speed, I go local. Balance is the key.

About the Author

Shivaling Sannalli
Quality Engineering Lead

Expert in quality engineering, test automation, and DevOps practices

View Medium Profile
Working on this?

We do this for a living.

If this article describes a decision you are making right now, bring it to a Blueprint Session — a working session, not a sales call.