原文地址: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 虛擬機啊。數據庫