Olá, boa noite
Na minha experiência, tudo depende do quanto quer investir, tamanho do projeto, demanda dos recursos, etc.
Se quer rodar a aplicação e o banco de dados na mesma máquina, não tem problema, o mesmo se aplica a rodar em máquinas separadas. Ter duas maquinas é ter que cuidar de dois ambientes, e isso pode ser complicado.
No começo, utilize uma máquina somente, faça funcionar, não se preocupe com otimização prévia, espere precisar chegar nesse ponto pra dai otimizar.
Sobre docker, pense que ele é seu aliado, se você ver sobre Docker Compose, vai ver que ele é uma forma de rodar varios container de uma vez só, e em um arquivo compose.yaml
você coloca a definição do seu banco de dados e aplicação juntos. Eu 100% recomendo tirar um tempo e aprender docker, vai te ajudar muito no futuro.