[英]Docker Desktop for windows + WSL2 (ubuntu) ( on Win10 Home)
[英]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-wsl
或lxrunoffline
在快速環上對我不起作用。 有時您必須先卸載/安裝 docker
C:\Users\xxx\AppData\Local\Docker
重新定位到新路徑C:\Users\xxx\AppData\Local\Docker
不再存在 mklink /j "C:\Users\xxx\AppData\Local\Docker" "path to where you relocated your docker folder"
擴展@Attila Badi 的答案也是對 C:\ProgramData\Docker 文件夾進行相同的處理,該文件夾似乎用於 WSL / Windows 容器。 即使移動 Docker 數據文件夾,仍然會給您留下大量的引導驅動器 ProgramData\Docker 文件夾 - 特別是如果您無法或不願意清理圖像。 您無法遷移它,也無法在安裝后移動它。 使用 Docker 引擎高級設置在 Linux 容器模式下工作,但在 windows 和反之亦然,並且無法啟動。
我遵循的步驟:
卸載 Docker。 我知道...確保你已經保存了你需要的東西。
創建主要占用空間的 docker 文件夾,在您有很多空間的位置,例如:
D:\Data\Docker\ProgramData_Docker
& D:\Data\Docker\AppData_Local_Docker
通過在管理員模式下在命令 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"
您應該能夠愉快地提取 windows 服務器映像,但不會堵塞您的引導驅動器。
一個不錯的工具:
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 發行版都移到了另一個驅動器上,它運行良好。
最好的選擇是更新注冊表。 請按照以下步驟操作
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 交換文件位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.