Как сделать резервную копию и восстановить контейнеры Docker (без оригинальной команды Docker Run)

Я хочу иметь возможность "заморозить" состояние контейнера в файл, а затем восстановить его позже, если контейнер был случайно удален. Это сделано для предотвращения случайного удаления контейнера.

Я старался docker export в файл tar, то docker import, но он создаст образ файловой системы Docker... а не самого контейнера. Я знаю, что я могу использовать docker run Из этого изображения я не являюсь создателем контейнера, и я не знаю, какая команда использовалась для его создания.

Я также пытался использовать docker-runc воссоздать контейнер из его rootfs а также config.json от /run/docker/libcontainerd/CONTAINER_ID/config.json, но я вижу, что это будет нелегко, и я хотел найти решение "не так взломать".

В настоящее время я знаю, что единственный способ добиться этого - создать снимки виртуальной машины хоста докера и, если кто-то случайно удалит контейнер, восстановить снимок. Но в последний раз это произошло, последняя резервная копия была сделана за 16 часов до этого, и я потерял все данные, созданные после этого (и процесс восстановления тоже занимал много времени).

Я просто хотел сохранить состояние контейнера в файл и иметь возможность восстановить его в случае удаления.

1 ответ

Решение

Вы можете использовать docker autocompose, чтобы получить docker-compose.yml эквивалент, который позволит вам воссоздать контейнер вместе с сохраненным изображением.

Другие вопросы по тегам