先单独测试 SSH 连接(解决首次验证问题):
ssh root@106.12.7.225 # 输入 yes 并按提示输入密码,连接成功后退出
#循环读取所有镜像,逐个迁移
docker images –format “{{.Repository}}:{{.Tag}}” | while read image; do
echo “开始迁移镜像: $image”
docker save “$image” | ssh root@116.62.179.72 ‘
mkdir -p /root/backup/docker/images &&
cat > /root/backup/docker/images/”$(echo ‘”$image”‘ | tr ‘/’ ‘‘ | tr ‘:’ ‘‘)”.tar &&
docker load < /root/backup/docker/images/”$(echo ‘”$image”‘ | tr ‘/’ ‘‘ | tr ‘:’ ‘‘)”.tar &&
echo “镜像 $image 已成功导入目标服务器!”
‘
done
迁移数据
tar czf – -C /root/docker . | ssh root@116.62.179.72 ‘
mkdir -p ~/backup/root/docker/volumesData &&
cat > ~/backup/root/docker/volumesData/backup.tar.gz &&
mkdir -p ~/docker &&
tar xzf ~/backup/root/docker/volumesData/backup.tar.gz -C ~/docker
‘
tar czf – -C /root/mysql . | ssh root@116.62.179.72 ‘
mkdir -p ~/backup/root/mysql/volumesData &&
cat > ~/backup/root/mysql/volumesData/backup.tar.gz &&
mkdir -p ~/mysql &&
tar xzf ~/backup/root/mysql/volumesData/backup.tar.gz -C ~/mysql
‘
tar czf – -C /root/workspace . | ssh root@116.62.179.72 ‘
mkdir -p ~/backup/root/workspace/volumesData &&
cat > ~/backup/root/workspace/volumesData/backup.tar.gz &&
mkdir -p ~/workspace &&
tar xzf ~/backup/root/workspace/volumesData/backup.tar.gz -C ~/workspace
‘
tar czf – -C /root/nginx-config . | ssh root@116.62.179.72 ‘
mkdir -p ~/backup/root/nginx-config/volumesData &&
cat > ~/backup/root/nginx-config/volumesData/backup.tar.gz &&
mkdir -p ~/nginx-config &&
tar xzf ~/backup/root/nginx-config/volumesData/backup.tar.gz -C ~/nginx-config
‘
tar czf – -C /root/logs . | ssh root@116.62.179.72 ‘
mkdir -p ~/backup/root/logs/volumesData &&
cat > ~/backup/root/logs/volumesData/backup.tar.gz &&
mkdir -p ~/logs &&
tar xzf ~/backup/root/logs/volumesData/backup.tar.gz -C ~/logs
‘
tar czf – -C /root/jenkins_backup . | ssh root@116.62.179.72 ‘
mkdir -p ~/backup/root/jenkins_backup/volumesData &&
cat > ~/backup/root/jenkins_backup/volumesData/backup.tar.gz &&
mkdir -p ~/jenkins_backup &&
tar xzf ~/backup/root/jenkins_backup/volumesData/backup.tar.gz -C ~/jenkins_backup
‘