php -S localhost:8080 -t public/ - запускает PHP сервер внутри контейнера, который слушает 8080 на внутреннем интерфейсе (localhost), а Ваши запросы приходят с внешнего интерфейса (172.17.0.2). Подробнее тут:
https://pythonspeed.com/articles/docker-connection...
Необходимо, что встроенный PHP сервер слушал порт со всех интерфейсов, для этого можно изменить команду вот так: CMD ["php", "-S", "0.0.0.0:8080", "-t", "public/"]
PS: Похожий вопрос так же обсуждался здесь
https://github.com/symfony/cli/issues/128#issuecom...