Docker Swarm Clusters Overview
Docker Swarm is a container orchestration tool that allows you to manage and scale a cluster of Docker hosts. While standalone Docker is great for running containers on a single host, Docker Swarm extends this capability to a group of machines, forming a swarm that can efficiently distribute and manage containerized applications.
Why Docker Swarm?
If you've used regular Docker deployments with Appliku, you already know the flexibility containerization provides. Docker Swarm is the next step in scaling your applications beyond the capacity of a single server.
Docker Swarm allows you to:
- Scale horizontally — run many copies of your application
- Scale server resources — add, remove, or replace servers as workload changes
- Go multi-cloud — have servers across multiple cloud providers or regions, avoiding vendor lock-in
- Simplify placement — add more apps to the cluster without worrying about container placement across servers
- Optimize costs — run on cloud providers that offer the best price for servers
How Docker Swarm Works
Docker Swarm works by turning a group of Docker hosts into a single virtual host, allowing you to manage and orchestrate containers across multiple machines.
- Appliku initializes Docker Swarm on the first server in your cluster, making it a Swarm Manager
- Other machines that you add to the swarm join as worker nodes
- An Nginx load balancer is deployed on the first server to distribute traffic between all containers across all worker nodes
- Docker Swarm overlay network handles distributing traffic and removing broken nodes from load balancing
- If a worker node fails, the Swarm Manager reschedules tasks on other healthy nodes, maintaining the desired state
Every application you deploy to a Managed Docker Swarm Cluster is a separate stack. Each process in your application becomes a service in the stack.
Scaling Applications
You can easily manage the number of containers/replicas running for each process in your app. Scale every process of every app individually at any time.
Compared to standalone Docker, Docker Swarm allows scaling a process even in a cluster with only one server, fully utilizing its resources.
Multi-Cloud Support
You can add servers from different providers to a given cluster. This allows you to:
- Optimize costs across providers
- Put servers closer to your customers
- Increase stability and availability
Application Logs
You can access logs of every application in the dashboard by going from the Application Overview page to App Logs and selecting what process/service you want to fetch logs for.
Next Steps
- Setting Up a Cluster — step-by-step cluster creation guide