Varje behållare i docker får som standard sitt eget värdnamn och IP. När compose snurrar upp behållarna åt dig placerar den också alla behållare i ett nätverk som standard för att tillåta DNS-baserad upptäckt.
Vad detta betyder är att din databas inte är tillgänglig på localhost, men du kan nå den med tjänstens namn "db". Ändra denna rad i din settings.py:
'HOST': 'localhost',
till:
'HOST': 'db',