docker rm не отвечает, и единственным вариантом является перезапуск docker desktop

#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.