п.1 - обновляемся аккуратненько, делаем build почти без риска влияния на систему, а опасные операции down и up делаем явно. Но это больше вопрос принципа, чем обход конкретной проблемы
п.4 - да я понял, просто описанная задача похожа на искусственную, реально не нужно было. А вообще в процесс разработки, если что-то непонятно и надо руками поковырять, то можно сделать run bash на то, что есть и в консоли руками всё проделать и сохранить важное для Dockerfile