Вы, вероятно, никогда не должны использовать docker commit
.
Когда-то в Docker не было docker exec
.Единственное, что вы могли сделать, это docker run
новый контейнер.Обычно вы хотели бы настроить все так, чтобы docker build
настроил все для вас, и отладить то, что вы могли бы docker run --rm -it myimage sh
, но если что-то действительно пошло не так во время выполнения, при отсутствии exec
, лучшее, что вы могли бы сделатьdo было зафиксировать текущее состояние контейнера, а затем запустить новый контейнер с интерактивной оболочкой на полученном изображении.
В наши дни, как вы говорите, docker exec
- лучший инструмент для оперативной отладки.(Он не предназначен для основного способа работы с вашим контейнером.) Если вам нужно изображение, docker build
и система Dockerfile
- более воспроизводимый способ создания изображений.