Blog of science and life
Move Docker volumes to other server
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.
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
rsync -avmy 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 cvfeverything inside
rsynctar files to new server
tar xvfthem to new
- Build and up docker services
- Stop services
rsyncbackup directory to binded directory path from
- 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.