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

How can I backup volumes in the IBM Docker Cloud in Bluemix?

我知道如何在可以本地访问的情况下保存 docker 图像,但是如何 我可以在 IBM Bluemix 平台中备份卷容器吗?

谢谢 安思

备份(远程)容器的卷的最简单方法是将卷安装到另一个卷上,然后 tar 它:tar 完成后,您可以使用 [=31= 下载它] 或您喜欢连接到容器的服务(也根据容器上可用的服务)。

要将卷安装到另一个容器上,您可以使用 --volumes-from 标志创建一个安装该卷的新容器:

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

此命令启动一个新容器并使用相同的路径 /path_to_backup 从 [source container] 容器装载卷。 然后在这里创建一个新卷并挂载到 /backup 路径。

最后,启动 tar 将 /path_to_backup 卷的内容 tar 写入 /backup 目录中的 backup.tar 文件。

命令完成后,即使容器已停止,备份也包含在另一个卷中:您可以将此卷安装在另一个容器中以下载它,或者 push/pull/upload 或任何您想要的东西想要。

这个备份也可以简单地通过分解第一个容器的 /path_to_backup 路径中的 tar 来恢复。

否则,您可以使用这个用于备份的现成容器: https://github.com/docker-infra/docker-backup

在这里您可以找到 docker 文档来管理 docker 卷:唯一的区别是您应该考虑一种方法来 move/copy 在您的本地环境或任何地方进行备份希望保留您的卷备份

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

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

A - 第一种可能性,使用一些不错的工具调用 cloudberry 备份 linux : 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 兼容存储上使用注册表存储,您需要在 bluemix 中创建对象存储帐户和一些存储桶(此处 http://www.softlayer.com/object-storage):

您将收到一个密钥并通过每个对象存储帐户,然后在本例中我们创建 2 个存储桶。 顺便说一句,端点由你决定,就我而言,我在达拉斯使用了较便宜的。

键:XXXXXXXXXXXXXX 通过:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我的 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