I use one per container that requires one (containers are all about isolation after all) , but since I use Ansible to maintain my Docker hosts, management is really simple.
homelab
You will most probably hit the problem that I had: one app moved to a new (major) version of postgres and some other apps didn't support it. So in the end I'm using a DB for each service/app.
I did the opposite, I started with one database instance but kept having issues and the maintainer told me to use multiple so now I have a ton of separate ones
I use just one.
I have multiple services on it (docker containers, custom data tracking) and have not had an issue.
I consistently surprised at how low my memory usage is on one instance 330 mb.
The maintenance of keeping up a db each docker just isn’t worth it or necessary.
Resource overhead when using multiple instances is negligible. But the benefit is if an app move to a nee major version of the db, then you can migrate easily. Also you don't have to worry about permissions, multi tenancy, roles, etc.
Only benefit of using a centralised db is easier back ups. But that is not enough for a centralised db IMO.