1. Контейнер это не виртуальная машина, это способ изоляции приложения.
Производительность почти не меняется. Оверхэд едва заметен.
Да, запускается несколько копий. Конечно не стоит множить ресурсоемкие процессы. Но СУБД и веб-серверы не входят в их число. У меня, например, работают 5 постгресов на одном микросервере без проблем. Опять таки, это до тех пор, пока нагрузки несерьезны.
Образы ОС запущены не будут. Они нужны только чтобы обеспечить приложению среду исполнения. В памяти висят только процессы приложений (ну то что вы в докере запустили)
2. В продакшене основной смысл это упрощение запуска микросервисов на разнообразном парке оборудования. Для классических приложений профит только в развертывании.
3. Есть разница в потраченном времени на настройку как раз redmine, gitlab и еще нескольких сервисов, установленных на хосте, и процесс запуска того же добра в контейнерах. Как раз в случае нескольких сервисов на одной машине докер всё серьезно упрощает.
Все эти rvm, nvm, этого пакета не хватает, того, а тут разные версии. Добавить сюда еще организацию бекапа.
С контейнерами другая проблема - это их корректное обновление.