I'm not quite sure what your actual questions are. Your overall question is fairly vague. You have three main questions here from what I can gather:
- Where should I start to get my own scalable PaaS infrastructure?
- Is Passenger something I should even be considering?
- Is Docker something I should be considering?
I'll answer number 3 first since that is easiest. The answer is Yes. If your going to be building something new, Docker will help get you into a more portable world, which will in turn help get you to a more scalable point. Your legacy webapps would run as their own containers, with their own sets of dependencies, and thus, become more portable.
The answer to number 2 sounds more dependent on Ruby and the Ruby applications in general. Can you run Passenger? Maybe... This seems more dependent on how the application was written and what servers it might be compatible with. However, it does appear that Phusion is making strides to be very Docker friendly. The have Docker images specifically around running Ruby, Python, and Node.js applications at least - https://github.com/phusion/passenger-docker.
My answer to number 1 would be to start by containerizing legacy applications. Make the applications more twelve factor compliant (http://12factor.net/) if they are not already. Make them more service oriented. Instead of running stuff like MySQL, Redis, Apache, PHP-FPM, etc in one container, separate them out into different services that connect to each other over TCP and HTTP (Docker links would be a great place to start with this - https://docs.docker.com/userguide/dockerlinks/).
By getting your applications to a point where they run in their own container, use external services that could run anywhere, and can be versioned with a default working configuration (a release), then you are getting closer to a world where you can then start writing scheduling, service discovery, and deployment scripting.
If you haven't already, check out stuff that comes a little earlier than a full-blown Docker PaaS such as https://coreos.com/ or http://www.projectatomic.io/. Something like these give you scheduling around your own containers / units rather than actually building your application containers for you. For learning in development, you might use something like http://www.fig.sh/ or http://decking.io/. Great for testing out your new service oriented containers locally.
For more tooling around Docker, keep an eye on https://stackoverflow.com/questions/18285212/how-to-scale-docker-containers-in-production. The top answer has a pretty good overview of what is currently out their and the author keeps it updated fairly well.