Как сделать резервную копию и восстановить контейнеры 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
эквивалент, который позволит вам воссоздать контейнер вместе с сохраненным изображением.