Why `docker stack` needs Docker to run in swarm mode? What are the implications when working on a single node?
Why it is mandatory to switch to swarm mode to run docker stack?


A stack and service are swarm mode objects by their very definition. The stack is a collection of services, and each service is a definition of a target state. Swarm mode takes those target states and manages containers to achieve that target state.


  And most important, what are the implications of switching to swarm mode when working on a single node?


Pretty minimal from the user perspective. There's another few ports opened and listening. If you try to directly manage containers (stop, rm, restart) that are managed by a service, you'll find that swarm mode will take steps to get you back to the service definition, which confuses some that keep finding new containers recreated when they delete all running containers directly. You just need to run the docker service commands to manage them instead.