Scale docker service in one single machine?

I’ve read about Docker Swarm and looks like we need multiple nodes/machines to scale the service as expected.
But my scenario here is there is just one single machine (installed with one Docker Engine). This machine can be a physical one or put in some EC2 instance (AWS).

I’ve also found that there is one solution using docker-machine to create VM right inside docker. However I still wonder if that’s the only solution? Is it recommended or good to go with?

My specific scenario here is to replicate about 8 listeners (put in one service) run by 8 workers (containers).
All serve one end-point for client requests (with same URI). So how is this possible for 8 listeners to listen and together serve all requests at one same URI? Looks like they have to be put in 8 independent machines (which requires me to get back to using docker-machine)?

Please advice me on this issue. Actually another member in my team proposed to run each docker instance manually (every time receiving an HTTP request via the only API gateway). His idea is to manually run each docker (the condition to run is still unclear to me) to serve the request in one EC2 instance (which should be able to contain a maximum of 8 dockers). I think that way is too complicated and may not be efficient (because we have to manually schedule the tasks and implement communication between dockers and the API gateway). That way also does not take any advantage of using Docker Swarm or Docker Compose or Orchestrator.