Method 1: docker save / docker load
docker save myapp:latest | gzip > myapp.tar.gz
scp myapp.tar.gz root@NEW_SERVER:/tmp/
docker load < /tmp/myapp.tar.gz
Transfer Volumes
docker run --rm -v myapp_data:/data -v $(pwd):/backup alpine tar czf /backup/vol.tar.gz -C /data .
💡 For production, use a Docker Registry to push/pull images instead of save/load.