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