Container management/orchestration on a single host

Hello! This is my first time on the forums, and I’m hoping that someone might be able to help with this problem!

I’m planning to run about 30 - 40 Docker services on a single host (a used workstation). These services are ultimately meant to run in production, and are not for development (i.e. we’re running these services in order to save money on hosting). I’m running Ubuntu 20.04

I plan to run 1 copy of WordPress + MariaDB, Bookstack + MariaDB, Nextcloud + MariaDB for about 10 groups (30 services, 60 containers), and about 10 admin services (NGINX reverse proxy, web analytics, redash, etc. etc.).

However, I’m not sure how to manage these 40 services, other than by wrangling 40 Docker Compose/Stacks scripts. Is Docker Swarm or some lightweight Kubernetes implementation a good idea?

Ideally, I would be able to test updates to all 40 services (by replicating the services and then updating one set? blue-green deployment?) without having to execute 40 commands. If possible, a GUI/web UI for managing all the services would be nice. Would Rancher.io, Shipyard/Portainer/DockStation be a good fit for this?

Sounds like it would be a task appropriate for kubernetes. I wouldn’t recommend swarm as it is not likely to receive much attention going forward since docker itself fully embraced kubernetes.

The biggest issue with kubernetes imo is the lack of volume syncing across nodes. Many use nfs mounted volumes for sharing between nodes, but it’s not a good solution for databases (mariadb, sqlite, etc. and can lead to issues with db locking or worse, corruption). If you plan on doing it all on a single node, that shouldn’t be an issue.

I have no experience with rancher.io so can’t comment on that.

Thanks for the reply!!

Is there any other reason for using kubernetes over swarm? It seems a bit overkill to use/learn kubernetes just for this.