When we wrote about Docker 0.9 in March 2014, we said “not for production yet”. Docker 1.0 (June 2014), 1.6, 1.7 — versions are arriving fast. Is Docker in 2015 ready for production deployments of enterprise applications?
What improved¶
Stability: Docker Engine is significantly more stable. Fewer memory leaks, better garbage collection, more robust networking. Security: User namespaces, seccomp profiles, read-only containers. Storage drivers: overlay2 is reliable and performant.
Production checklist¶
- Logging driver for centralised logs (syslog, json-file with rotation)
- Resource limits (–memory, –cpus) — without them a container will consume everything
- Health checks (HEALTHCHECK in Dockerfile)
- Restart policy (–restart unless-stopped)
- Read-only filesystem where possible (–read-only)
- Non-root user in the container (USER directive)
What is still missing¶
Native orchestration is still immature. Docker Compose is not for production. Docker Swarm is early stage. Kubernetes is growing but complex. Stateful workloads (databases) in containers remain controversial.
Our production experience¶
First production deployment: a stateless REST API behind an Nginx reverse proxy. Three instances, rolling restart for deployment. Running stably for three months. Database stays outside containers — on bare-metal PostgreSQL.
Yes, but with care¶
Docker is production-ready for stateless workloads. For stateful services and complex orchestration we are still waiting. Gradual adoption — start with CI/CD, then staging, then non-critical production.
Need help with implementation?
Our experts can help with design, implementation, and operations. From architecture to production.
Contact us