Това може да се случи, ако контейнерът на приложението ви (web тук) започва преди вашата база данни да бъде напълно инициализирана.
Трябва да изчакате до db услугата се стартира (по-точно до mysql приема връзки), преди да стартирате приложението си (python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000 ).
За това можете да използвате wait-for-it.sh скрипт (проверете https://docs.docker.com/compose/startup-order/ ), преди да стартирате вашите команди на python. Като алтернатива можете да използвате правило за рестартиране във вашия web услуга (https://docs.docker.com/compose/compose-file/ #restart_policy
), за да рестартирате автоматично вашата услуга (докато базата данни не бъде изградена).