Как работает докер и нужен ли он для веб-приложений?
1. Если контейнер содержит в себе веб-сервер, бд, то при написании второго приложения и его запуске в системе будет крутиться два веб-сервера?
Да. Но ничто не мешает использовать впереди один веб-сервер, и обслуживать им два контейнера с веб-приложениями.
 2. Насколько вообще оправдано использование докера например при написании веб-приложения на python?
Одно окружение что на сервере, что на рабочей станции разработчика.
Отличная интеграция в CI/CD на практике.
Нет необходимости засорять машину разработчика кучей установленных БД разных версий, доп. ПО и прочего. 
Легкость развертывания и прочее.
Так что достаточно оправданно... 
3. Если хост-система Windows, то для работы с докером нужно запускать виртуальную машину с Linux и на ней разворачивать докер?
Докер есть и под windows
не нужен  вообще это  лишняя  прослойка
докер  удобен  для  админов  чтобы  руками  не  ставить  а  просто  стянул  образ  и все.