【问题标题】:How can I backup volumes in the IBM Docker Cloud in Bluemix?如何在 Bluemix 中备份 IBM Docker Cloud 中的卷?
【发布时间】:2015-11-12 07:11:53
【问题描述】:

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

谢谢 安西

【问题讨论】:

    标签: docker backup ibm-cloud volume


    【解决方案1】:

    备份(远程)容器卷的最简单方法是将卷挂载到另一个卷上并 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 文档:唯一的区别是您应该考虑一种在本地环境或您希望保留卷备份的地方移动/复制备份的方法

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

    【讨论】:

      【解决方案2】:

      到目前为止我发现了 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
      

      【讨论】:

      • 运行“-free”而不是“-t”来激活免费版本不受15天的限制。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多