First: Good for you, enjoy the journey! Second: Just as others already pointed out, Mastodon is not really a beginner project. You want to understand what you are doing, not just make everything work no matter what. Some reasons why I’d not start with Mastodon:
- Complex deployment stack (for beginners)
- Needs regular maintenance
- Security considerations (if you haven’t managed/hardened a server before)
- Long term project
So instead: Have a look at awesome-selfhosted for ideas. A personal dashboard, photo gallery or a PiHole/AdGuard is a good start.
About Docker; it’s a bit more than just dependency separation. It’s a kind of virtualization, but without each container running it’s own kernel. Advantage is: Docker images run (with some configuration) relatively lightweight out of the box. So there’s no need to install the applications natively. While I’m a great fan of Docker, you’d probably learn more installing things natively in the beginning. Or maybe do both, it’s up to you. However, if you decide to use Docker, be sure to understand what’s going on under the hood. That’s where the fun begins. Everyone can pull and start images, but not everyone knows how to customize or build them themselves.
No matter what you decide to do, have fun. And if you’ve any questions, there’s plenty of documentation online or just ask. The selfhosting community is very welcoming towards new members ;)
Been there, done that. Volatility is something you learn pretty early, yes. ^^