簡體   English   中英

在 WSL2 上使用 Docker 桌面和 Windows 10 主頁時,如何更改 docker 圖像的位置?

[英]How can I change the location of docker images when using Docker Desktop on WSL2 with Windows 10 Home?

我剛剛升級到 Windows 10 Home May 2020,激活 WSL2並安裝Docker Desktop

WSL2必須安裝在我的系統盤中,這是一個小型SSD。 我不想用 docker 圖像填充它。 如何更改 docker 圖像路徑? 我想在我的大 Windows 文件系統中使用路徑。

圖像位置有些混亂。 我相信它在/mnt/wsl/docker-desktop-data/

如何更改 WSL2 中 docker 圖像的目錄? 我可以將 docker 配置更改為 select 內的路徑/mnt/d ,還是從 /mnt/d 安裝路徑到 docker 數據目錄?

WSL 2 docker-desktop-data vm 磁盤映像通常位於: %USERPROFILE%\AppData\Local\Docker\wsl\data\ext4.vhdx

按照以下步驟將其重新定位到其他驅動器/目錄,並保留所有現有的 docker 數據(針對 Docker 桌面 2.3.0.4 (46911) 進行測試,並在更新 3.1.0 (51484) 后繼續工作):

首先,通過右鍵單擊 Docker 桌面圖標和 select 退出 Docker 桌面關閉 docker 桌面

然后,打開命令提示符:

wsl --list -v

您應該能夠看到,確保兩者的 STATE 都已停止。( wsl --shutdown )

  NAME                   STATE           VERSION
* docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

將 docker-desktop-data 導出到文件中

wsl --export docker-desktop-data "D:\Docker\wsl\data\docker-desktop-data.tar"

從 wsl 取消注冊 docker-desktop-data,請注意,在此之后,您的ext4.vhdx文件將被自動刪除(如果您有重要的現有圖像/容器,請先備份它):

wsl --unregister docker-desktop-data

將 docker-desktop-data 導入回 wsl,但現在 ext4.vhdx 將駐留在不同的驅動器/目錄中:

wsl --import docker-desktop-data "D:\Docker\wsl\data" "D:\Docker\wsl\data\docker-desktop-data.tar" --version 2

再次啟動 Docker 桌面,它應該可以工作

如果在驗證后一切正常,您可以刪除D:\Docker\wsl\data\docker-desktop-data.tar文件(不是ext4.vhdx文件)

編輯:現在重新注冊 docker-desktop 會將默認 docker-data 設置為 C 驅動器,因此我們應該只取消注冊 docker-data 作為接受的答案。

你可以做

 wsl --unregister docker-desktop-data

 wsl --import docker-desktop-data D:\wsl\docker-desktop-data "C:\Program Files\Docker\Docker\resources\wsl\wsl-data.tar" --version=2

tar 文件是用於安裝的文件,在它之前是您的新目標。

這總是有效的,而move-wsllxrunoffline在快速環上對我不起作用。 有時您必須先卸載/安裝 docker

  1. 停止Docker台式機
  2. 將 Docker 文件夾從C:\Users\xxx\AppData\Local\Docker重新定位到新路徑
  3. 確保C:\Users\xxx\AppData\Local\Docker不再存在
  4. 在管理員模式下打開一個 cmd
  5. 運行以下命令,將在 cmd window 中使用適當的 from 和 to 路徑創建符號鏈接
    mklink /j "C:\Users\xxx\AppData\Local\Docker" "path to where you relocated your docker folder"
  1. 重啟Docker台式機

擴展@Attila Badi 的答案也是對 C:\ProgramData\Docker 文件夾進行相同的處理,該文件夾似乎用於 WSL / Windows 容器。 即使移動 Docker 數據文件夾,仍然會給您留下大量的引導驅動器 ProgramData\Docker 文件夾 - 特別是如果您無法或不願意清理圖像。 您無法遷移它,也無法在安裝后移動它。 使用 Docker 引擎高級設置在 Linux 容器模式下工作,但在 windows 和反之亦然,並且無法啟動。

我遵循的步驟:

  1. 卸載 Docker。 我知道...確保你已經保存了你需要的東西。

  2. 創建主要占用空間的 docker 文件夾,在您有很多空間的位置,例如:

    D:\Data\Docker\ProgramData_Docker & D:\Data\Docker\AppData_Local_Docker

  3. 通過在管理員模式下在命令 window 中運行以下命令來創建鏈接文件夾:

mklink /j "C:\Users\xxx\AppData\Local\Docker" "D:\Data\Docker\ProgramData_Docker"
mklink /j "C:\ProgramData\Docker" "D:\Data\Docker\AppData_Local_Docker"
  1. 安裝 Docker。

您應該能夠愉快地提取 windows 服務器映像,但不會堵塞您的引導驅動器。

對我來說 docker 不會從結開始。

然后我只使用了目錄符號鏈接

Docker stopped

Folder "wsl" moved to other location on disk "B"

RUben@AD-RUBEN C:\Users\RUben\AppData\Local\Docker
$ mklink /D wsl "B:\dev\wsl"
**symbolic link** created for wsl <<===>> B:\dev\wsl

在此處輸入圖像描述

容器和圖像已准備好使用:

在此處輸入圖像描述

一個不錯的工具:

DDoSolitary/LxRunOffline:用於管理 Linux (WSL) 的 Windows 子系統的全功能實用程序

https://github.com/DDoSolitary/LxRunOffline

LxRunOffline.exe move    Move a distribution to a new directory.
Options:
  -n arg                Name of the distribution
  -d arg                The directory to move the distribution to.

例如:

退出 docker 桌面,然后:

wsl --shutdown
LxRunOffline.exe move -n docker-desktop-data -d D:\vm\dockerdesktop\wsl\data

我在 github 上從 pxlrbt 找到了這個工具 它使用標准的 wsl 導入/導出,非常安全。 剛剛將我的 docker-desktop-data 發行版都移到了另一個驅動器上,它運行良好。

最好的選擇是更新注冊表。 請按照以下步驟操作

  1. 關閉wsl。 使用命令 wsl --shutdown
  2. 將整個 C:\Users%USERPROFILE%\AppData\Local\Docker 目錄移動到不同的驅動器,例如 D:\Docker\wsl
  3. 轉到注冊表編輯器位置 Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss。
  4. 查找 BasePath 設置為 C:\Users%USERPROFILE%\AppData\Local\Docker\wsl\data 的注冊表項。 更新這個 D:\Docker\wsl\data
  5. 查找 BasePath 設置為 C:\Users%USERPROFILE%\AppData\Local\Docker\wsl\distro 的另一個注冊表項。 更新這個 D:\Docker\wsl\distro。
  6. 使用以下命令重新啟動 wsl: wsl -d Ubuntu

In Windows 10 home, docker desktop creates the VM under ""C:\Users\xxx\AppData\Local\Docker" directory and it is this VM that contains the downloaded docker images. If you want to change the VM location from C:到另一個目錄,您可以通過使用如下命令在 windows(在 docker 桌面安裝之前)上創建一個聯結來執行此操作:

mklink /j "C:\Users\xxx\AppData\Local\Docker" "D:\Users\xxx\AppData\Local\Docker"

請注意,在執行命令之前,目標目錄結構應該存在,而您應該刪除 C:\Users\xxx\AppData\Local\Docker 目錄(如果它已經存在),否則命令可能會失敗。 Now install docker desktop on windows 10 home and voila you can see stuff inside "D:\Users\xxx\AppData\Local\Docker" directory namely the docker VM hard disk image file that is going to contain all the downloaded docker images.

使用小型 SSD,您可能還需要重新定位 WSL 交換文件位置。

https://docs.microsoft.com/en-us/windows/wsl/wsl-config

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM