Рейтинг:0

Как восстановить контейнеры докеров после моментального удаления докера

флаг pt

Я удалил докер с помощью sudo snap удалить докер. На самом деле я не хотел его удалять, просто проверял, установил ли я его с помощью щелчок, надеясь, что это подскажет мне (г/н) нравиться подходящий делает. Но он просто удалил докер. Отлично.Было быстро переустановить его снова.

Но где мои контейнеры?! Все образы и контейнеры (докер пс-а) ушли! Удаление заняло много времени, поэтому мне интересно, есть ли какой-то бэкап или файлы все еще хранятся и контейнеры можно восстановить? Не заботьтесь об изображениях, только о контейнерах. Спасибо.

Проверено /var/snap/docker/common/var-lib-docker/контейнеры но оригинальных контейнеров там нет.

Рейтинг:1
флаг pt

Оказывается, длившаяся долго операция действительно была резервной копией, или, по их терминологии, снэпшотом. От документация:

Снимки создаются вручную с помощью команды snap save и автоматически при удалении снапа (требуется snapd 2.39+). А снимок можно использовать для резервного копирования состояния ваших снимков, возврата снимков в предыдущее состояние и восстановить новую установку snapd до ранее сохраненное состояние.

я проверил свой снэпд версия:

# оснастка --версия
оснастка 2.52.1
Снэпд 2.52.1
серия 16
убунту 21.04
ядро 5.11.0-40-универсальное

Затем увидел, какие снимки были доступны:

# снимок сохранен
Установить размер версии версии Snap Age Примечания
1 докер 2х58м 20.10.8 1125 1.39гб авто

Проверил, что снимок был в порядке:

# snap check-snapshot 1
Снимок № 1 успешно проверен.

Наконец, восстановил автоматический снимок:

# моментальное восстановление 1
Восстановленный снимок №1.

На данном этапе докер пс-а по-прежнему показывал мне контейнеры, которые я создал после последней установки, а не те, которые я хотел восстановить. Возможно, если бы я не создал новые контейнеры, он бы просто работал. Но я знаю, что по крайней мере файлы контейнера были восстановлены, потому что я могу найти их в /var/snap/docker/common/var-lib-docker/overlay2/. Это лучше, чем ничего. Будь осторожен с быстрое удаление!

Восстановление исходных контейнеров

Напомню, как я попал в это состояние:

  • побежал sudo snap удалить докер который уничтожил важные контейнеры
  • побежал sudo snap установить докер установить докер снова
  • побежал докер-компоновать который поднял два новых контейнера
  • побежал мгновенное восстановление 1 восстановить автоматический снимок

На данный момент мне удалось найти восстановленные файлы контейнера, но докер пс-а по-прежнему не отображал фактические контейнеры. Таким образом, вот что я сделал, чтобы вернуть полные контейнеры:

  • удалил все видимые контейнеры и образы после второй установки так как они мне не нужны
  • снова удалил докер с Судо удалить докер и заметил, что снова происходит автоматический снимок: "Сохранить данные снимка "docker" в наборе автоматических снимков №2".
  • снова восстановил первый снимок: мгновенное восстановление 1

Теперь, если я сделаю докер пс-а Я снова вижу все свои контейнеры в остановленном состоянии! Однако есть одна проблема, один из них не запускается с сообщением: Ошибка: ответ от демона: не удалось создать среду выполнения OCI: существует контейнер с идентификатором:....

Чтобы обойти это, самым простым способом, который я нашел, было докер фиксирует <идентификатор-контейнера> и используйте полученное изображение, чтобы запустить его как новый контейнер. После того, как я увидел, что он в порядке, я избавился от сломанного. Все пришло в норму!

Кстати, считается хорошей практикой использовать тома для хранения данных в контейнерах. Изображения также могут быть сохранен в архив.

user535733 avatar
флаг cn
Отличный ответ.Я кое-что узнал! Спасибо, что провели нас через это.
Nagev avatar
флаг pt
Спасибо, теперь также удалось сделать контейнеры видимыми, очистив и переустановив докер. Они отображаются с `docker ps -a`, но не могут быть запущены: `Ошибка ответа от демона: не удалось создать среду выполнения OCI: существует контейнер с идентификатором:...`, чтобы увидеть, могу ли я исправить конфликт и запустить их. нормально снова.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.