[Docker]Docker Desktop一键迁移脚本 Docker-Desktop
最近Docker一更新就导致经常出错,每次都要重装,重装之后又要进行数据迁移,觉得手动麻烦,于是有了以下脚本
@echo off
set HOME=%~dp0
echo 当前目录位置:%HOME%
set /p choice3="批处理需要在wsl关闭的情况下执行,是否关闭(Y/N): "
if "%choice3%"=="" goto :eof
if /i "%choice3%"=="Y" (wsl --shutdown
echo !!! WSL SHUTDOWN!!!)
if /i "%choice3%"=="N" goto :eof
if not exist "%HOME%docker-desktop-data.tar" (
set file1_exists=false
) else (
set file1_exists=true
)
if not exist "%HOME%docker-desktop.tar" (
set file2_exists=false
) else (
set file2_exists=true
)
if "%file1_exists%"=="false" (
set /p choice1="文件 docker-desktop-data.tar 不存在,是否执行备份?(Y/N): "
if /i "%choice1%"=="Y" (
wsl --export docker-desktop-data "%HOME%docker-desktop-data.tar"
echo 已执行备份:%HOME%docker-desktop-data.tar
) else (
echo 未执行备份。
)
) else (
echo 文件 docker-desktop-data.tar 存在。
)
if "%file2_exists%"=="false" (
set /p choice2="文件 docker-desktop.tar 不存在,是否执行备份?(Y/N): "
if /i "%choice2%"=="Y" (
wsl --export docker-desktop "%HOME%docker-desktop.tar"
echo 已执行备份:%HOME%docker-desktop.tar
) else (
echo 未执行备份。
)
) else (
echo 文件 docker-desktop.tar 存在。
)
echo 请确保 %HOME%不存在 main 与 data 子目录, 若存在请及时备份,还原时将清空这两个目录
echo 若执行还原:
echo docker-desktop 将被还原至 %HOME%main下
echo docker-desktop-data 将还原至 %HOME%data下
set /p choice="是否还原?(Y/N): "
if "%choice%"=="" goto :eof
if /i "%choice%"=="Y" goto :continue
if /i "%choice%"=="N" goto :eof
:continue
if not exist "%HOME%main" (
echo 不存在 %HOME%main 直接创建
mkdir "%HOME%main"
) else (
echo %HOME%main 已存在,进行移除
rmdir /s /q "%HOME%\main"
echo %HOME%main 创建成功
mkdir "%HOME%main"
)
if not exist "%HOME%data" (
echo 不存在 %HOME%\data 直接创建
mkdir "%HOME%\data"
) else (
echo %HOME%data 已存在,进行移除
rmdir /s /q "%HOME%\data"
echo %HOME%data 创建成功
mkdir "%HOME%data"
)
echo 结束wsl
wsl --shutdown
echo 取消Docker Desktop相关分发注册
wsl --unregister docker-desktop-data
wsl --unregister docker-desktop
echo 执行导入
wsl --import docker-desktop-data "%HOME%\data" "%HOME%docker-desktop-data.tar" --version 2
wsl --import docker-desktop "%HOME%\main" "%HOME%docker-desktop.tar" --version 2
pause
随机命名.bat

浙公网安备 33010602011771号