Как нормально разрабатывать если каждый раз следует обновлять контейнер?
Мне не совсем понятен вопрос - к чему это относится?
Если вопрос про hot update, когда ты поменял пару строчек и сразу увидел изменения. То тут у каждого инструмента (ЯП, IDE, фреймворки) есть свои особенности, надо искать под каждый свое решение. Например, в Rider есть возможность обновления уже запущенного кода в контейнерах. Это реализуется как раз за счет создания таких вольюмов (больше сказать особенно не могу - не изучал)
Если вопрос про то, что добавил эндпоинт/функцию и т.д. и надо все заново собирать с новой версией - это правильный подход. Называется заморозка версии. Это необходимо для того, чтобы та функциональность которую ты предоставляешь корректно работала у всех и обновления не сломали уже работающий код других. Например, у тебя версия sample-image:1.0.0 в которой есть функциональность подсчета времени - она возвращает время в мс, а потом ты сделал так, что эта функциональность возвращает время в нс. Если не создать для этого новую версию, то старые приложения в лучшем случае аварйино завершатся.
PS Вообще, вольюмы - это универсальный инструмент и годится не только для прокидывания настроек.