In 2025, the article discusses the ongoing use of Swarm for Docker due to its usability and simplicity, particularly for those avoiding the complexity of Kubernetes. Docker's limitations in providing a minimal dynamic proxy led to the creation of Millau, which serves as an ingress-proxy and load balancer based on simple labels. Unlike solutions like Nginx and Traefik, which require cumbersome configurations, Millau aims for simplicity and transparency, updating routing automatically in response to Docker events, thus making deployment easier for users.
If you've ever deployed services in Docker Swarm, you've encountered the question of routing external traffic: how to organize access from the outside to the desired services inside the stack. Sure, you can use Nginx, HAProxy, or Traefik - and many do. But each of these solutions has its drawbacks.
I wanted a simple and declarative solution with self-configuration, requiring no redeploy and being fully transparent to clients in front and microservices behind.
From Docker's perspective, Millau is a container with read-only access to the Docker Engine socket to listen to events. Creating, updating, and deleting services (Swarm mode) and containers (Compose mode) triggers proxy rule updates.
Collection
[
|
...
]