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