zoukankan      html  css  js  c++  java
  • 利用 Docker 备份、迁移数据库

    原文地址:https://zeeko.1503.run/Article/17

    最近在把腾讯云的国内主机迁移到香港主机,因为之前使用的 MySql 跟 MongoDb 都是基于 Docker 部署的,所以迁移起来还算比较方便,主要思路就是把数据库容器的数据卷单独做成一个数据镜像,然后把这个镜像提交到香港主机上面的私有仓库,最后用这个镜像生成一个数据容器挂载到应用容器上就好了。

    1. 备份数据卷

    docker run --rm --volumes-from data-container-backup --name tmp-backup -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /folderToBackup
        
    #Example: Backup mysql database
    docker run --rm --volumes-from blog-mysql --name tmp-backup -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/lib/mysql
    

    --rm 用来创建一个“用完即销”的容器,--volumes-from 用来把一个已有容器上挂载的卷挂载到新创建的容器上

    2. 创建数据容器

    docker run -d -v $(pwd):/backup --name data-backup alpine /bin/sh -c "cd / && tar xvf /backup/backup.tar"
    

    3. 推送数据容器到私有仓库

    docker commit data-backup registry-host:port/data-backup:$VERSION
    
    docker push registry-host:port/data-backup:$VERSION
    

    4. 在另一台主机下载数据容器

    docker run -v /folderToBackup --entrypoint "bin/sh" --name data-container registry-host:port/data-backup:${VERSION}
    

    5. 将数据容器里面的数据卷挂载到应用容器上

    docker run --volumes-from=data-container registry-host:port/data-backup:${VERSION}
    
    # Example
    docker run --name new-mysql -d -p 3306:3306 --volumes-from=data-container registry-host:port/data-backup:${VERSION}
    

    就这样 5 步操作,就可以很方便的备份、迁移数据库了。所以买主机也一定要买支持 Docker 的 KVM 虚拟机啊。

  • 相关阅读:
    运动运行。
    stratMove方法
    抛物线
    表单的小例子吖
    常用的查询DOM的方法
    liuyan
    防止xss攻击。
    ES6
    Map的使用
    ZOJ 3998(线段树)
  • 原文地址:https://www.cnblogs.com/JacZhu/p/7835237.html
Copyright © 2011-2022 走看看