Docker-демон завис - отсутствует файл состояния контейнера?

Docker-демон завис - отсутствует файл состояния контейнера?

Я использую Docker 1.12.6 на AWS Linux.

Все dockerкоманды зависают.

Экземпляр AWS сегодня утром рухнул (до сих пор не знаю почему). Перезагрузка не помогла, поэтому я остановил и запустил экземпляр. При просмотре /var/log/dockerполучаю:

time="2017-01-16T10:46:18.829402768Z" level=info msg="libcontainerd: new containerd process, pid: 21697" 
time="2017-01-16T10:46:18.833508272Z" level=fatal msg="open /var/run/docker/libcontainerd/containerd/054f92393f757e0418b014ed1fa35673fbce2293de43e42153f4e10ec4910c77/state.json: no such file or directory"

Каталог контейнера существует, но содержит только пустой initкаталог. Случайный поиск по другим контейнерам показывает то же самое.

Я предполагаю, что зависание вызвано отсутствием файла. Как мне восстановиться?

Редактировать:

В итоге удалил, а затем переустановил, получил сообщение:

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Запустил службу Docker, теперь она снова зависла.

решение1

Я решил свою проблему

  1. остановка сервисного докера
  2. Перейдите в /var/run/docker и удалите все каталоги, связанные с идентификатором контейнера.
  3. Перейдите в /var/lib/docker и удалите все каталоги, связанные с идентификатором контейнера.
  4. запуск сервиса докера

решение2

Ответ @Moreno сработал для меня с небольшой поправкой:

  • остановить демон докера ( sudo service docker stop)

  • Удалить папки в containerd (на всякий случай мы также удалили папки с тем же именем непосредственно в libconteinerd (/var/run/docker/libcontainerd/containerd)

  • запустить демон докера

решение3

Я столкнулся с той же проблемой. Потратив на это довольно много времени, мне пришлось вернуться к старым AMI, которые работают, пока я не найду решение этой проблемы. Последний агент ECS (1.13.1) был выпущен пару дней назад — интересно, может ли это быть нашей проблемой.

Обзор:

  • Docker 1.12.6
  • ECS Agent 1.13.1

При загрузке экземпляра все dockerкоманды зависают. Проверка /var/log/dockerпоказывает:

level=info msg="libcontainerd: new containerd process, pid: 21687" 
level=fatal msg="open /var/run/docker/libcontainerd/containerd/{{CONTAINER_HASH}}/state.json: no such file or directory"

Та же проблема, где libcontainerdсодержится пустой initкаталог (не state.jsonвидно!)

решение4

Столкнулся с той же проблемой. Экземпляр рухнул (неизвестная причина). Docker и агент ECS. Переустановка docker не помогла.

Что нам помогло:

  • Убить docker вручную (kill pid)
  • Удалить папки в containerd (на всякий случай мы также удалили папки с тем же именем непосредственно в libconteinerd (/var/run/docker/libcontainerd/containerd)
  • Перезапустить докер
  • Начать ecs

Видно здесь: https://github.com/docker/docker/issues/30984

Система снова работает.

Связанный контент