Docker lets you create containers that work as individual entities, and you can manage multiple containers inside a single Docker installation. While you can create and use as many self-hosted app containers as you wish, the hardware resources are always limited. I have a spare old laptop with just 4GB DDR3 memory, and it serves as a good machine to run some of my essential self-hosted services.