[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

posted @ 2023-10-01 21:29  小天呜啦啦  阅读(182)  评论(0)    收藏  举报