DEV Community

Alex Spinov
Alex Spinov

Posted on

Why I Stopped Using Docker for Local Development

Controversial take: Docker is amazing for deployment. But for local development, it's slowing you down.

I used Docker Compose for everything — Postgres, Redis, my app, even Node for frontend builds. Then I measured the cost.

The Numbers

Task Without Docker With Docker
Start dev environment 2 seconds 45 seconds
Hot reload (Python) Instant 3-8 seconds
Run test suite 12 seconds 38 seconds
File system operations Native speed 2-10x slower (macOS)
RAM usage idle 200MB 2.4GB

On macOS, Docker's file system layer (VirtioFS/gRPC FUSE) adds measurable latency to every file read. For a Python project with 500+ files, this means every import, every test discovery, every lint run is slower.

What I Use Instead

For databases: Native installs or managed services

# Postgres — native is fast and simple
brew install postgresql@16
brew services start postgresql@16

# Redis
brew install redis
brew services start redis
Enter fullscreen mode Exit fullscreen mode

For team consistency, I use mise (formerly rtx) to pin versions:

# .mise.toml
[tools]
python = "3.12"
node = "20"
postgres = "16"
Enter fullscreen mode Exit fullscreen mode

For services you rarely change: Docker

I still use Docker for:

  • Elasticsearch (annoying to install natively)
  • Kafka (complex setup)
  • Third-party services for integration testing
# docker-compose.yml — ONLY for heavy services
services:
  elasticsearch:
    image: elasticsearch:8.12.0
    ports: ["9200:9200"]
  kafka:
    image: confluentinc/cp-kafka:7.5.0
    ports: ["9092:9092"]
Enter fullscreen mode Exit fullscreen mode

For production parity: Devcontainers (when you need them)

If your team absolutely needs identical environments, VS Code devcontainers are better than raw Docker Compose because they're designed for development (file watching, extensions, debugging all work properly).

When Docker IS the Right Choice

  • Team has mixed OS (Windows + Mac + Linux)
  • Complex service mesh that's painful to install
  • Onboarding new developers quickly
  • CI/CD pipeline (always Docker here)

The Bigger Point

Docker solved "it works on my machine" for deployment. But we've cargo-culted it into local development where it often creates more friction than it removes.

The best dev environment is the one where you forget about infrastructure and just write code.

What's Your Setup?

Are you still using Docker for local dev? Have you tried going native? What broke?


I write about developer tools, security, and the boring infrastructure decisions that save hours. More tools →

Top comments (0)