#macos #docker #docker-desktop
#macos #docker #docker-desktop
Вопрос:
У меня установлен docker desktop (2.4.00) на Mac (Catalina). В последнее время мы видим, что docker не отвечает в середине сборки. Последующие запросы docker находятся в состоянии «создано», но никогда не выполняются оттуда. В основном все контейнеры зависают. Единственный способ восстановиться отсюда — перезапустить docker desktop.
выполните действия, описанные в https://docs.docker.com/docker-for-mac/troubleshoot / чтобы собрать журналы и обнаружил приведенное ниже сообщение примерно в тот момент, когда все контейнеры перестали отвечать на запросы.
localhost com.docker.backend[988]: volumeResource: не удается проверить контейнер 94126dd1 ****** localhost com.docker.backend[988]: volumeResource: не удается проверить контейнер 59988882******
По-видимому, docker сообщает, что контейнер запущен, но он был отключен по какой-то неизвестной причине. docker rm -f и docker kill оба не работают на неопределенный срок и не уничтожают контейнер. Контейнер, похоже, превратился в зомби, и единственный способ восстановиться — перезапустить docker desktop.
Может кто-нибудь, пожалуйста, расскажите мне подробнее о том, как отлаживать больше и как вернуть docker в рабочее состояние без необходимости перезапуска docker desktop.
Ответ №1:
Вы можете запустить docker ps -a
, чтобы проверить все контейнеры up или down. К тому времени вы можете попытаться выполнить проверку с docker container inspect (container-id here)
помощью или docker container rm -f (container-id here)
с помощью параметра -f, чтобы принудительно удалить контейнер. Другой вариант — выполнить a docker container prune
, чтобы удалить все остановленные контейнеры, а затем вы можете снова их запустить.
Комментарии:
1. Привет, Эниотт, спасибо за советы. контейнер docker rm -f также застрял навсегда. docker inspect дает мне следующий ответ. «State»: { «Status»: «выполняется», «Выполняется»: true, «Приостановлено»: false, «Перезапуск»: false, «OOMKilled»: false, «Dead»: false, «Pid»: 28258, «ExitCode»: 0, «Ошибка»: «», «StartedAt»: «2020-10-06T08:18:13.704484807Z», «FinishedAt»: «0001-01-01T00:00:00Z»
Ответ №2:
вы уверены?
для контейнера удалите, но контейнер должен быть остановлен
docker container rm <container-id or container name>
показать весь список контейнеров docker
docker container ls -a
показать список, в котором работает только контейнер docker
docker container ls
если вы хотите удалить контейнер принудительно, вы можете использовать -f
параметр
, например
docker container rm -f <container-id or container-name>
Комментарии:
1. Дило, спасибо за подсказки. статус docker container ls отображается как «в течение 15 часов». контейнер docker rm -f просто зависает. docker inspect дает мне следующий ответ. «State»: { «Status»: «выполняется», «Выполняется»: true, «Приостановлено»: false, «Перезапуск»: false, «OOMKilled»: false, «Dead»: false, «Pid»: 28258, «ExitCode»: 0, «Ошибка»: «», «StartedAt»: «2020-10-06T08:18:13.704484807Z», «FinishedAt»: «0001-01-01T00:00:00Z». Это происходит часто, поэтому очень хотелось бы найти способ отладить это. Пожалуйста, обратите внимание, что мы используем docker-desktop на Mac.