【发布时间】:2015-11-12 07:11:53
【问题描述】:
当我可以在本地访问 docker 图像时,我知道如何保存它们,但是如何 我可以在 IBM Bluemix 平台中备份卷容器吗?
谢谢 安西
【问题讨论】:
标签: docker backup ibm-cloud volume
当我可以在本地访问 docker 图像时,我知道如何保存它们,但是如何 我可以在 IBM Bluemix 平台中备份卷容器吗?
谢谢 安西
【问题讨论】:
标签: docker backup ibm-cloud volume
备份(远程)容器卷的最简单方法是将卷挂载到另一个卷上并 tar:一旦 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
此命令启动一个新容器并使用相同路径 /path_to_backup 从 [源容器] 容器装载卷。 然后在这里创建一个新卷并安装在 /backup 路径上。
最后启动 tar 以将 /path_to_backup 卷的内容 tar 到 /backup 目录中的 backup.tar 文件中。
当命令完成时,即使容器已停止,备份也包含在另一个卷中:您可以将此卷挂载到另一个容器中以下载它,或推送/拉取/上传或任何您想要的。
这个备份也可以简单地通过在第一个容器的 /path_to_backup 路径中分解 tar 来恢复。
否则,您可以使用这个现成的容器进行备份: https://github.com/docker-infra/docker-backup
在这里您可以找到管理 docker 卷的 docker 文档:唯一的区别是您应该考虑一种在本地环境或您希望保留卷备份的地方移动/复制备份的方法
【讨论】:
到目前为止我发现了 2 种可能性:
A - 第一种可能性,使用一些不错的工具调用 cloudberry backup for 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 个存储桶。 顺便说一句,终点取决于你,就我而言,我在达拉斯使用了较便宜的。
键:XXXXXXXXXXXXXXX 通过: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
【讨论】: