Иногда помогает простая перезагрузка, и нет ничего плохого в том, чтобы попытаться перезапустить Docker для Mac или выполнить полную перезагрузку, но я не могу вспомнить конкретный симптом, который бы он исправил, и это не то, что мне нужно делать регулярно.
Я действительно столкнулся только с двумя классами проблем, которые звучат так, как вы описываете.
Если у вас есть шаг Dockerfile, который последовательно успешно выполняется, но дает противоречивые результаты:
RUN curl http://may.not.exist.example.com/ || true
Вы можете оказаться в ситуации, когда основная команда не выполнена или выдает неправильный вывод, но шаг RUN
в целом выполнен успешно.docker build --no-cache
перезапустит сборку, игнорируя это, и чрезвычайно агрессивная последовательность docker rmi
(удаляющая каждую сборку, текущую и прошлую, соответствующего изображения) также очистит ее.
Другой класспроблема, с которой я столкнулся, связана с некоторым уровнем коррупции в /var/lib/docker
.Обычно это имеет очень очевидные симптомы, обычно связанные с ошибками типа «файл не найден» или «ошибка подключаемого каталога» в настройке, которая, как вы знаете, работает .Я сталкивался с этим больше на родном Linux, чем на Docker для Mac, возможно, потому, что установка DfM Linux немного более управляема и оптимизирована для Docker (она определенно не работает с 3-летним ядром с произвольными исправлениями от поставщиков).В Linux вы можете обойти это, остановив Docker, удалив все в /var/lib/docker
и снова запустив Docker;в Docker для Mac в окне настроек есть страница «Сброс» с различными вариантами деструктивной очистки, и «Сброс к заводским настройкам» наиболее близок к этому.