Blog of science and life
Move Docker volumes to other server
New home
I've been self-hosted a few services for my daily needs, and I choosed Hetzner because of their's pricing.
But now after I know Contabo, I will move my services to Contabo, because it's cheaper and more powerful.
I can reduce the server cost for about 30%. Neet.
But I don't want to lose my data. And I don't want to spent a lot of time migrate things either.
Luckily, all of my projects was deployed using Docker. If you don't know Docker, now is good time to start because it's awesome.
Moving data
Let's say I want to move from server A (Hetzner) to server B (Contabo)
And my jobs now are:
- Generate ssh key (
ssh-keygen -t ed25519
) and add public key to server B~/.ssh/authorized_keys
file. rsync -av
my projects from A to B- Find the right directory where Docker bind volumes with
docker inspect <container_name> | grep "Source"
If you want to archive database
tar cvf
everything inside.../_data
rsync
tar files to new servertar xvf
them to new~/backup
directory
- Build and up docker services
- Stop services
rsync
backup directory to binded directory path fromstep 3
- Repeat step 4 for other services
After that you can safely delete the extracted directories. Install nginx
and copy config files from A -> B.
You might want to keep the tar
file for a bit longer to prevent issues.