Scaling Docker / Docker Swarm

Hi,

I’m trying to get my head around what the best set up is for using Docker Swarm in a cloud environment (in my case Azure).

Let’s say I have three virtual machines all of which have Docker installed and are configured to be part of the same Swarm (1 manager and 2 workers). In this Swarm there is a service running from a docker-compose.yml.

When the VM CPU gets to a certain percentage I would like for a new VM to be spun up which is added as a worker to the swarm and which runs the service.

Is this possible? Or do I have to set up way more workers / managers than I will need at the outset and accept that each VM will be underutilized? This doesn’t seem like it can be the right approach but any help much appreciated!