Оказывается, длившаяся долго операция действительно была резервной копией, или, по их терминологии, снэпшотом. От документация:
Снимки создаются вручную с помощью команды 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: существует контейнер с идентификатором:...
.
Чтобы обойти это, самым простым способом, который я нашел, было докер фиксирует <идентификатор-контейнера>
и используйте полученное изображение, чтобы запустить его как новый контейнер. После того, как я увидел, что он в порядке, я избавился от сломанного. Все пришло в норму!
Кстати, считается хорошей практикой использовать тома для хранения данных в контейнерах. Изображения также могут быть сохранен в архив.