Chaque conteneur dans docker obtient par défaut son propre nom d'hôte et son adresse IP. Lorsque compose lance les conteneurs pour vous, il place également tous les conteneurs sur un réseau par défaut pour permettre la découverte basée sur DNS.
Cela signifie que votre base de données n'est pas accessible sur localhost, mais vous pouvez l'atteindre par le nom de service "db". Modifiez cette ligne dans votre settings.py :
'HOST': 'localhost',
à :
'HOST': 'db',