如何在Bluemix中的IBM Docker Cloud中备份卷?

我知道如何在本地访问docker映像时保存docker映像,但是如何在IBM Bluemix平台中备份卷容器?

谢谢Ansi

备份(远程)容器卷最简单的方法是将卷装载到另一个卷上并进行tar命令:一旦tar完成,您可以使用scp / sftp / ftp / http或您希望连接到容器的服务(也根据可用的服务)。

要在另一个容器上安装卷,可以使用–volumes-from标志创build一个装载此卷的新容器:

docker run --volumes-from [source container] -v /volume_backup ubuntu tar cvf /volume_backup/backup.tar /path_to_backup 

此命令将启动一个新容器,并使用相同的path/ path_to_backup从[源容器]容器中装入卷。 然后在这里创build一个新卷并挂载在/备份path上。

最后启动一个tar来将/ path_to_backup卷的内容定位到/ backup目录下的backup.tar文件。

当命令完成时,即使容器已经停止,备份也包含在另一个卷中:您可以将该卷装载到另一个容器中下载,或者推/拉/上传或任何你想要的。

这个备份也可以简单地恢复,以爆炸第一个容器的/ path_to_backuppath中的tar。

否则,你可以使用这个备用的容器进行备份: https : //github.com/docker-infra/docker-backup

在这里,您可以finddocker文档来pipe理docker卷:唯一的区别是您应该考虑在本地环境中移动/复制备份的方法,或者希望保留卷备份的位置

http://docs.docker.com/v1.8/userguide/dockervolumes/

到目前为止我发现了两种可能性

A – 第一种可能性,使用一些漂亮的工具调用linux的cloudberry备份: http : //www.cloudberrylab.com/backupcmd_nix.aspx#section-synchronise-account

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兼容存储上的registry存储,您需要在bluemix( http://www.softlayer.com/object-storage )中创build对象存储帐户和一些存储桶:

您将收到一个密钥并传递给每个对象存储帐户,然后在这个示例中我们创build了2个存储桶。 顺便说一下,终点是由你决定的,就我而言,我使用了达拉斯的较便宜的terminal。

键:XXXXXXXXXXXXXX PASS:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我的2桶是:demodockerbucket(用于testing)demodockerbucket_fixed(当我的需要configuration适合存储我的容器)

 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