контейнер завершает свою работу ровно тогда, когда завершаются какие-либо процессы в контейнере. Например если это контейнер с nginx, то в докерфайле для того чтобы нгинх не демонизировался - CMD ["nginx", "-g", "daemon off;"]
та же проблема была. НЕ решил. Создал шелл скрипт и в него прописал команду на монтирование. Теперь при старте виртуалки выполняю ./mnt, под рутом. Лучше пока ничего не нашел
https://www.jetbrains.com/phpstorm/marklets/ - нажмите "Generate", перетащите "Start debugger" и "Stop debugger" в панели закладок, нажимайте на старт на той странице, где запускаете скрипт, при этом, прослушивание соедениния дебаггера уже должно быть включено, и так же, должен быть запущен "Debug "
не знаю, стоит ли разделять на несколько виртуалок, но как мне кажется вариант - VBOX, vagrant, docker ansible был бы не плох. А SQL Server не в отдельную вирт. а в отдельный контейнер. Не спец, но надеюсь помог