Часто возникает вопрос, нужно ли создавать резервные копии контейнеров Docker.
На первый взгляд, поскольку работающий контейнер является временным, может показаться, что это не так. Однако при проверке closer имеет смысл создавать резервные копии контейнеров docker для защиты от сбоев.
В этой статье мы рассмотрим некоторые случаи, когда необходимо создавать резервные копии контейнеров, что нужно резервировать и как это делать.
Резервная копия Docker Container
Конечно, обычному контейнеру не нужно сохранять своё рабочее состояние, и большинство контейнеров не сохраняют состояние. Другими словами, в контейнере не хранятся данные, и это просто ещё один запущенный экземпляр заданного образа контейнера, который уже сохранён где-то в другом месте.
Проще говоря, в зависимости от того, как реализовано приложение и его данные, может потребоваться резервное копирование.
Как создать резервную копию контейнеров Docker
Прежде чем создавать резервную копию контейнера Docker, нам нужно container ID
получить идентификатор этого конкретного контейнера. Здесь мы воспользуемся ps
командой для получения идентификаторов всех запущенных контейнеров.
Отсюда мы можем скопировать container ID
контейнер, который нам нужно создать.
Итак, чтобы вывести список всех идентификаторов запущенных контейнеров, используйте следующую команду:
docker ps -a
В результатах мы найдем файл container ID
контейнера docker, который мы хотим создать резервную копию, скопируем его, а затем используем с помощью команды Docker commit
. Format для этой команды:
docker commit −p <CONTAINER_ID> <BACKUP_NAME>
Итак, например, если container ID
имя нашего контейнера — 5c7d78fcb634
, а имя нашей резервной копии — our-docker-backup
, команда будет выглядеть так:
docker commit −p 5c7d78fcb634 our-docker-backup
С помощью этой команды мы сначала приостановили работающий контейнер с помощью опции -p
и сделали коммит, чтобы сохранить весь снимок в виде образа Docker с именем our-docker-backup
.
Мы также можем сохранить изображение в видеtar
файла на нашем локальном компьютере с помощью команды:
docker save −o ∽/our-docker-backup.tar our-docker-backup
Мы можем проверить, был ли сохранен файл, используя команду:
ls −l ∽/our-docker-backup.tar
Когда он сохранен в виде tar
файла, мы можем переместить его в любую другую желаемую систему Docker для развертывания.
Мы также можем повторно развернуть наш our-docker-backup
образ на другом хосте Docker, используя команду push для отправки образа в частный репозиторий Docker.
Для этого будем использовать команду:
docker login
docker push our-docker-backup
Теперь, когда мы создали резервную копию нашего контейнера Docker, давайте рассмотрим процедуру восстановления контейнеров Docker локально или на другом компьютере.
Как восстановить резервную копию Docker
Если мы сохранили tar
файл на нашем хост-компьютере, мы можем восстановить его с помощью команды docker load
. Для этого мы воспользуемся командой:
docker load −i ∽/our-docker-backup.tar
Чтобы убедиться, что изображение было успешно восстановлено, мы можем вывести список всех изображений с помощью следующей команды:
docker images
Если мы загрузили образ резервной копии в репозиторий Docker, мы можем использовать команду pull
для извлечения данных из репозитория.
Здесь мы воспользуемся командой:
docker pull our-docker-backup:tag
Как только мы восстановим резервный образ на нашем локальном компьютере, мы сможем использовать run
команду для запуска нового экземпляра образа Docker для восстановления. Для этого мы используем команду:
docker run −ti our-docker-backup:tag
Ссылки