Ogni contenitore nella finestra mobile per impostazione predefinita ottiene il proprio nome host e IP. Quando compose fa girare i contenitori per te, posiziona anche tutti i contenitori su una rete per impostazione predefinita per consentire il rilevamento basato su DNS.
Ciò significa che il tuo database non è raggiungibile su localhost, ma puoi raggiungerlo con il nome del servizio "db". Modifica questa riga nel tuo settings.py:
'HOST': 'localhost',
a:
'HOST': 'db',