Почитайте документацию. Там все достаточно просто: настраиваете несколько контейнеров php c разными версиями на разные порты, а потом проксируете нужные пути проектов через nginx на нужные версии php.
Однако, самый правильный вариант - хранить в папке с проектом отдельную конфигурацию docker-compose. Такой подход позволит разворачивать нужный сервер на любой машине, которая получает доступ к репозиторию проекта.
Данные отдаем на фронт с помощью json, который впоследствии обрабатываем с помощью js. Вишенкой на торте будет дополнительная реализация калькулятора без помощи js, средствами бэкенда
Узнайте ширину элемента прокрутки заранее, используя динамически создаваемый элемент за пределами окна.
Далее добавляйте инлайн стиль к body при открытом модальном окне так, чтобы не прыгало.
Алексей, это всё реализуется средствами docker и миграциями базы данных на уровне приложений. Ерлан Ибраев, данные в mysql и postgresql - это всего лишь файлы. Их можно хранить вне контейнера.