If you need other services like Sidekiq, ElasticSearch or anything else, you would be able to add the appropriate services in the docker-compose files. Yes, the DB, redis and other services (outside of the app services) should go on the managed services. This would provide a certain level of backups appropriately.
It's also not ideal that the postgres, redis, etc are dockerized (whether it is in the docker swarm or kubernetes) since the service could become unhealthy and reboot at any point in time. Since these aren't redundant services, it could bring down the application unexpectedly while they're being restarted.
If you wanted to use managed services, you could still use the docker swarm and portainer. You'd need to pass the environment variables through to the app services which can be done through portainer or some other mechanism.