I'm trying to wrap my head around Docker and how to ensure high availability for my Docker services, especially for the Docker host itself. I've got multiple hardware and virtual machines available, and while scalability isn't a concern, I do have shared storage. Here are a few specific questions I'm pondering:
1. How can I achieve high availability for my Docker services and hosts? For instance, what happens during maintenance or if there's a hardware crash? I understand VM high availability can help somewhat, but with a bare metal setup, everything might still go down.
2. I've come across Docker Swarm. Is this the official solution for high availability? Someone mentioned that Docker Swarm is outdated and has been replaced by Kubernetes, but then I also heard that Docker Swarm is still viable. What's the real deal?
3. I've only played around with Kubernetes for a brief time (specifically k3s). It seems to me that Docker Compose files can't be used directly and need to be converted. Is this the main issue? Is Kubernetes a reliable option for achieving high availability for Docker containers?
3 Answers
Honestly, don’t rely too much on AI for info on tech like this! You can either stick with Docker Compose or invest some time learning Kubernetes. If you dedicate an hour a day for a week or two, you’ll get a solid grasp. Plus, there are tools available that can convert Docker Compose files into Kubernetes manifests, which can save a lot of time.
Docker Swarm is definitely still a solid option and it's much easier to get started with compared to Kubernetes. You basically just run `docker swarm init`, add your other hosts, and tweak a few lines in your Compose file. The whole process should only take a couple of hours max. Kubernetes has a steep learning curve and is harder to maintain, plus you can't directly use your Docker Compose files—you'll need to pretty much rewrite everything and define many additional components like networking and load balancing.
We actually use Docker Swarm for our production setup. It's a bit overkill for our needs but it's simple to set up and maintain. Once you understand Docker Compose on a single VM, scaling out to multiple nodes with Swarm is straightforward. Just remember to use an overlay network to manage your container networks across different hosts.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures