原文地址: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 虚拟机啊。

最新文章

  1. [转]大数据时代,python竟是最好的语言?
  2. Django 1.9 支持中文(转)
  3. Windows Locale Codes - Sortable list(具体一个语言里还可具体细分,中国是2052,法国是1036)
  4. 如何理解C#委托
  5. MongoDB-query查询接口
  6. PHP注册手机获取验证码代码
  7. SecureCrt设置字符编码
  8. 搜索之BM25和BM25F模型
  9. 玩玩hibernate
  10. Servlet常用类
  11. “DataTable”是“System.Data.DataTable”和“Microsoft.Office.Interop.Excel.DataTable”之间的不明确的引用
  12. Android Studio 1.0 (稳定版) 完全攻略
  13. hdu_2089_不要62(数位DP)
  14. flask开发过程中的常见问题
  15. SSM-SpringMVC-09:SpringMVC中以继承MutiActionController类的方式实现处理器
  16. react 之 reflux 填坑
  17. oracle 11G direct path read 很美也很伤人
  18. 6.Python enumerate 特性
  19. 关于栈和队列的一点点小知识-----C++自带函数
  20. [转] 通过Ajax方式上传文件,使用FormData进行Ajax请求

热门文章

  1. MVC 页面静态化
  2. 实现验证码图像文字的识别(C#调用DLL)
  3. MySQL5.5编译安装以及Debug
  4. Python中__new__和__init__区别
  5. Android Testing Point
  6. select2 取值 遍历 设置默认值
  7. Spring Boot 的Maven多模块开发web项目使用外部容器进行部署
  8. F - Capture
  9. 75、django之ORM补充
  10. 实现JavaScript forEach