Docker deployment - one machine - no downtime

I have only one small web project to be run through the Docker and only one machine where I can’t use virtualization and I don’t really need that either. I would like to know how can I deploy my application to VPS with Docker without any downtime.

For now, I am just using a repository and creating docker container with docker-compose (including some configuration for production through specific .yaml file).

I guess the best would be to use Swarm, but I think it’s not possible since I could only use one machine.

Swarm is the way to go, and you can run swarm with only 1 node.

So, with swarm you can have fx. 4 running containers, and when you want to deploy, you define that it should do a rolling update with 1 container at the time.