目录

docker容器的迁移

原来在vultr买的vps内存有点小,准备留着备用,或者放弃掉。(2.5 美金的机器,现在已经绝种的套餐,放弃掉太可惜了。)

另外准备了一台 1G 内存的vps,需要做的事情就是把以前的数据库git数据、各种东西迁移过去。所幸全部应用都已经用docker实现了容器化,有用数据都放在volume里面。迁移起来非常方便。

准备工作

原来的vpsvultr中,叫Src,新的vpsDest。分别建个目录做备份。

1
2
3
4
5
6
# from Src
:~$mkdir backup


# from dest
:~$mkdir backup

打包

我的数据都是放在 volume 里面的。首先是在Src中用一个containervolume加载。这个就个人随意了。

然后将volume里面的东西打包

1
2
3
# from Src
sudo docker run -v /gogs --name store alpine /bin/ash
sudo docker run --rm --volumes-from store -v $(pwd):/backup alpine tar czf /backup/gogs.tar.gz /volumes/gogs

传输

用 scp 将打包文件从Src下载到Dest中。

1
2
3
cd ~/backup
scp username@ipaddress:~/backup/gogs.tar.gz gogs.tar.gz

恢复

同样创建一个volume,然后用一个临时的container加载。然后解包。

1
2
3
4
sudo docker volume create gogs
sudo docker run -v /gogs --name store alpine /bin/ash

sudo docker run --rm --volumes-from store -v $(pwd):/backup alpine ash -c "cd /volumes/gogs && tar xzf /backup/gogs.tar.gz --strip 2"

all done.