原文地址:https://zeeko.1503.run/Article/17mysql
最近在把腾讯云的国内主机迁移到香港主机,由于以前使用的 MySql 跟 MongoDb 都是基于 Docker 部署的,因此迁移起来还算比较方便,主要思路就是把数据库容器的数据卷单独作成一个数据镜像,而后把这个镜像提交到香港主机上面的私有仓库,最后用这个镜像生成一个数据容器挂载到应用容器上就行了。sql
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
用来把一个已有容器上挂载的卷挂载到新建立的容器上docker
docker run -d -v $(pwd):/backup --name data-backup alpine /bin/sh -c "cd / && tar xvf /backup/backup.tar"
docker commit data-backup registry-host:port/data-backup:$VERSION docker push registry-host:port/data-backup:$VERSION
docker run -v /folderToBackup --entrypoint "bin/sh" --name data-container registry-host:port/data-backup:${VERSION}
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 虚拟机啊。数据库