Как я могу создавать резервные копии томов в IBM Docker Cloud в Bluemix?
Я знаю, как сохранять образы докеров, когда я могу получить к ним локальный доступ, но как мне сделать резервную копию контейнера томов на платформе IBM Bluemix?
Спасибо Анси
2 ответа
Самый простой способ сделать резервную копию тома (удаленного) контейнера - это смонтировать том на другом томе и скопировать его: после завершения tar вы можете загрузить его, используя scp / sftp / ftp / http или службу, которую вы предпочитаете подключать к контейнеру. (также в зависимости от услуг, доступных на нем).
Чтобы смонтировать том в другом контейнере, вы можете использовать флаг --volumes-from для создания нового контейнера, монтирующего этот том:
docker run --volumes-from [source container] -v /volume_backup ubuntu tar cvf /volume_backup/backup.tar /path_to_backup
Эта команда запускает новый контейнер и монтирует том из контейнера [source container], используя тот же путь /path_to_backup. Затем здесь создается новый том и монтируется на / резервную копию пути.
Наконец, запускается tar-файл для хранения содержимого тома /path_to_backup в файле backup.tar внутри каталога / backup.
Когда команда завершается, даже если контейнер был остановлен, резервная копия содержится в другом томе: вы можете смонтировать этот том в другом контейнере, чтобы загрузить его, или нажать / вытащить / загрузить или куда угодно.
Эту резервную копию также можно просто восстановить, взяв tar по пути /path_to_backup первого контейнера.
В противном случае вы можете использовать этот готовый контейнер, полезный для резервного копирования: https://github.com/docker-infra/docker-backup
Здесь вы можете найти документы Docker для управления томами Docker: единственное отличие состоит в том, что вам следует подумать о способе перемещения / копирования резервной копии в локальной среде или там, где вы хотите хранить резервные копии томов.
2 возможности, которые я нашел до сих пор:
A - Первая возможность, используя некоторые приятные инструменты для резервного копирования в облачном хранилище для Linux: http://www.cloudberrylab.com/backupcmd_nix.aspx
1- Сначала установите:
dpkg -i ubuntu14_CloudBerryLab_CloudBerryBackup_v1.10.0.112_20161110193906.deb
2- лицензия:
cbb activateLicense -e "my.adressmail@zanzibarrr.com" -t
3 - добавить объект учетной записи
cbb addAccount -d testCOS -st S3Compatible -ac wfkNMxTXjE1wRlCDYW9A -sk UMsSQfQGsgbhnKIieYgNAwOh218FUlvCfnpFlV5k -ep http://myendpoint -c demovaultbucket -bp testbkpclientcloudfoundry
Например, вы собираетесь:
backup all the files from the "/home/NAME/Documents/" directory;
exclude the "/home/NAME/Documents/books/" folder;
use compression;
run every workday at 23:00;
receive notification on completion:
4 - добавить план для вашей резервной копии
cbb addBackupPlan -n "Backup my docs" -a "testCOS" -f "/home/NAME/Documents/" -ef "/home/NAME/Documents/books/" -c yes -every week -at "23:00" -weekday "mo, tu, we, th, fr" -notification on
5- добавить другой план для вашей резервной копии
cbb addBackupPlan -n "Backup my docs 2" -a "testCOS" -f "/root" yes -every week -at "13:00" -weekday "mo, tu, we, th, fr"
root@bluemix:~# cbb plan -l
CloudBerry Backup Command Line Interface started
Trial expires in 15 day(s)
Backup my docs 2 : Stopped
Backup my docs 3 : Stopped
Backup my docs : Stopped
Backup my docs : Stopped
5- запусти
root@bluemix:~# cbb plan -free -r "Backup my docs 3"
CloudBerry Backup Command Line Interface started
Trial expires in 15 day(s)
Success
B - используя хранилище реестра в Bluemix S3-совместимом хранилище, вам нужно будет создать учетную запись хранилища объектов и несколько контейнеров в bluemix (здесь http://www.softlayer.com/object-storage):
Вы получите ключ и пропуск для каждой учетной записи хранения объекта, затем в этом примере мы создадим 2 сегмента. Кстати, конечная точка зависит от вас, в моем случае я использовал менее дорогой в Далласе.
ключ: XXXXXXXXXXXXXX PASS: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Мои 2 корзины: demodockerbucket (используется для теста) demodockerbucket_fixed (для хранения моего контейнера, когда конфигурация соответствует моим потребностям)
docker run -d -p 5000:5000 -e "REGISTRY_STORAGE=s3" -e "REGISTRY_STORAGE_S3_REGION=generic" -e "REGISTRY_STORAGE_S3_REGIONENDPOINT=https://s3-api.dal-us-geo.objectstorage.softlayer.net/" -e "REGISTRY_STORAGE_S3_BUCKET=demodockerbucket" -e "REGISTRY_STORAGE_S3_ACCESSKEY=XXXXXXXXXXXXXX" -e "REGISTRY_STORAGE_S3_SECRETKEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -e "REGISTRY_STORAGE_S3_SECURE=true" -e "REGISTRY_STORAGE_S3_ENCRYPT=false" registry
Затем поиграйте с вашим контейнером, вытяните его в хранилище объектов или верните:
docker pull ubuntu
docker pull sameersbn/openfire:latest
docker pull debian
docker tag ubuntu localhost:5000/ubuntu
docker tag sameersbn/openfire localhost:5000/openfire
docker tag debian localhost:5000/debian
docker push localhost:5000/openfire
docker push localhost:5000/ubuntu
docker push localhost:5000/debian
docker pull localhost:5000/openfire
docker pull localhost:5000/ubuntu
docker pull localhost:5000/debian
docker run -d -p 5000:5000 -e "REGISTRY_STORAGE=s3" -e "REGISTRY_STORAGE_S3_REGION=generic" -e "REGISTRY_STORAGE_S3_REGIONENDPOINT=https://s3-api.dal-us-geo.objectstorage.softlayer.net/" -e "REGISTRY_STORAGE_S3_BUCKET=demodockerbucket_fixed" -e "REGISTRY_STORAGE_S3_ACCESSKEY=XXXXXXXXXXXXXX" -e "REGISTRY_STORAGE_S3_SECRETKEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -e "REGISTRY_STORAGE_S3_SECURE=true" -e "REGISTRY_STORAGE_S3_ENCRYPT=false" registry
docker run --name='openfire' -i -t --rm -p 192.168.56.108:9090:9090 -p 192.168.56.108:5222:5222 -p 192.168.56.108:7777:7777 -p 192.168.56.108:5275:5275 localhost:5000/openfire