Как тут уже написали можно но не нужно, в 99% случаев это так. Но... бывают задачи, например у меня есть один агент написанный на питоне и к нему в довесок нужны filebeat и merticbeat. Можно было бы поднять 3 контейнера, но начинаются шаманства с тем как читать логи и метрики в разрезе процессов в другом контейнере. К тому же, как и у Вас, мне нужно тиражировать агента и ставить в кучу мест, кое где лютые ИБшники закрыли доступ к половине ресурсов интернета, и таскать по 3 образа не удобно, проще все собрать в один и с него поднять за 5 секунд.
Решается ваша задача достаточно просто, есть такая замечательная вещь как supervisor. Он запускается как основной процесс контейнера, и он, в свою очередь, поддерживает работу 3-х других процессов, перезпуская их в случае краша. Запускается контейнер через docker-compose что гарантирует перезапуск контейнера в случае его краша.
Делайте так как Вам удобно, один контейнер - один процесс это для большей части типичных задач, но не для всех!