Резервное копирование работающего контейнера Docker?
можно ли создать резервную копию работающего контейнера Docker? Это export
команда подходит для этого?
3 ответа:
опубликовано одним другом в комментариях
Привет Слава, извините, что ваш вопрос был закрыт. Для протокола, Слава говорит о docker.io, среда выполнения для контейнеров linux. Да,
docker export
- Это подходящий подход. Он будет генерировать тарбол всего состояния файловой системы контейнера и сбрасывать его на stdout. Так что
docker export $CONTAINER_ID > $CONTAINER_ID-backup.tar
даст полезный архив. Вы можете повторно импортировать тарбол с помощью
docker import - slava/$CONTAINER_ID-backup < $CONTAINER_ID-backup.tar
обратите внимание на оригинальные метаданные (например, идентификатор исходного изображения) будут потеряны. Это должно быть исправлено в будущих версиях докер. - Соломон Хайкс АПР 2 ' 13 в 6: 35
добавление здесь, так что можно найти из резюме, что вопрос был дан ответ. Спасибо, Соломон!
export
имеет некоторые ограничения: он не экспортировать объем данных.здесь объем данных означает:
- здесь
VOLUME
определено в файле Dockerfile изображения.- контейнер запускается с таким параметром:
-v /webapp
подробнее о данных: https://docs.docker.com/userguide/dockervolumes/
способ справиться с этой ситуацией-запустить новый контейнер с '--объемы-от' параметр для подключения к этому контейнеру, так что вы можете посетить объем данных.
примеры:
- посетить данные: (в bash)
docker run -it --volumes-from target_container ubuntu bash
- резервное копирование на хост: (контейнер postgres)
docker run -it --volumes-from some_postgres -v /host/path:/container/path --rm ubuntu bash -c "tar -cvf /container/path/postgres-backup.tar /var/lib/postgresql/data"
вы также можете сохранять и загружать.. вот пример
sudo docker images
awan@google-dev:~/StarCenter/_docker$ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE google_star/_version_1.10 latest 1067d6689697b2 4 days ago 1.666 GB
sudo docker save google_star/_version_1.10 > my_docker-backup.tgz
восстановить его с помощью (
sudo docker load < my_docker-backup.tgz
)Проверьте свои изображения с помощью
sudo docker images
в вашей новой машине докера