Стоит ли использовать каждый контейнер Docker отдельно для каждого запущенного процесса?
В книге он говорит о том, что разработчики docker считают, что наиболее правильным в работе контейнеров использовать один процесс на один контейнер.  Всё верно. Это основная парадигма при использовании контейнеризации. Ноги растут из 12 factors. Можно одной картинкой
В некоторых случаях можно от неё отходить - суть не догма. Это случаи когда в контейнере с приложением надо держать планировщик (crontab), утилиту мониторинга, либо что-то ещё не относящееся к основному процессу.Подскажите, значит ли это, что если я хочу развернуть веб сервер то мне надо минимум 3 контейнера Так и есть. Дальнейший запуск всех приложений осуществляется одной командой. Поскольку она получается довольно длинной (как будто Ява приложение запускаешь), предпочтительно использовать для этих целей docker-compose. Там единственный файл в формате yaml, в котором можно описать, что в какой последовательности запускать и в случае необходимости перезапускать, сколько и каких ресурсов железа выделять каждому приложению и много много ещё чего.Или это все непринципиально и все можно сложить в один контейнер и будет работать так же хорошо. Можно и так сделать. Правда проще и разумнее всего не заморачиваться в этом случае с контейнерами.
Это и без докера должно быть. Правила хорошего тона: скуль отдельно, сайт отдельно.