For about a year my homelab was a collection of services running wherever they happened to land. One thing on the NUC, two on the old laptop, a Pi doing DNS, and absolutely no record of which environment variable lived where. It worked, in the way that a Jenga tower works.
Over the quiet days between Christmas and New Year I pulled the lot into a single docker-compose.yml on one box. Not because one box is the right answer forever, but because I could no longer remember how half of it was wired together, and a Compose file is documentation that also happens to run.
The win was not really Docker. It was having one file I can read top to bottom and understand the whole house: every service, every port, every volume, every dependency. When something breaks now, I know where to look. When I want to back it up, it is one directory and one docker compose down. When I rebuild the host, it is git clone and docker compose up -d.
There is a real argument that I have just built a single point of failure, and that argument is correct. If that box dies, the house goes dark. But the previous arrangement failed just as readily and gave me no clue why. I will take the failure I can reason about. The spread-out version will come back when I have learned enough to spread it out on purpose, rather than by accident.