[英]Change Docker machine location - Windows
我在 Windows 7 上使用 docker 工具箱來運行 docker。 (碼頭工人版本 1.9.1)
事實證明,docker 機器在 C:\\Users\\username\\.docker\\machine\\machines\\default 處創建了它的 VM。 當我提交映像時,此位置的 VM 大小會膨脹。 由於是 Windows,我負擔不起 C 盤上的奢侈空間。
有什么辦法可以更改默認機器的位置嗎?
這對我來說在 Windows 7 上非常有效:
Docker Toolbox 現在將在 MACHINE_STORAGE_PATH 指向的位置創建所有文件。
更新:
請注意,使用新存儲路徑創建新 VM 並不理想,因為 Docker 快速入門終端腳本似乎不適用於任何未命名為“默認”的內容。
如果您已經在 C: 驅動器中安裝了一個 VM,那么最簡單的方法是轉到 Oracle VirtualBox 並刪除“默認”VM,卸載 Docker Toolbox,刪除 C:\\Users\\<username>。 docker\\,然后按照上面的 3 個步驟操作。
注意:可能不需要卸載和重新安裝 Docker Toolbox。 但沒有它我還沒有測試過。
更新
要移動 Docker 證書,請將DOCKER_CERT_PATH
變量設置為指向新驅動器的路徑。 感謝@Nutle 的提示。
您可以將.docker
目錄移動到另一個驅動器並為其創建一個連接點。
請注意,常規快捷方式將不起作用。
例如:
將.docker
目錄從C:\\Users\\username
到D:\\
並運行:
C:\Users\username>mklink /j .docker D:\.docker
Junction created for .docker <<===>> D:\.docker
自 2015 年以來,現在(2017 年 6 月) Hyper-V允許您定義VHDX
文件的位置:
請參閱Docker for Windows 1.13.0, 2017-01-19 (stable) :
可以移動包含圖像和非主機安裝卷的 VHDX 文件(使用 UI 中的“高級”選項卡)
這將用一行修改%APPDATA%\\Docker\\settings.json
:
"MobyVhdPathOverride":"C:\\Users\\Public\\Documents\\Hyper-V\\New folder\\MobyLinuxVM.vhdx"
原答案
目前 2015 年,docker-machine 強制使用%USERPROFILE%
:
見libmachine/mcnutils/utils.go#L17-L25
正如第 499 期所評論的:
同時,用戶如何能夠指定
.docker/machine/*
文件的存儲位置?您可以通過在命令行上指定
--storage-path
或使用環境變量MACHINE_STORAGE_PATH
。
(你可以看到它在PR 1941 中實現)
剛剛在 Mac 上嘗試了 '
-s <path>
',它似乎工作正常。
可能不明顯的是 path 選項位於 command 之前。
運行“docker-machine -s /Volumes/other/location' create --driver=virtualbox
”在另一個位置創建了一個新的 VirtualBox 鏡像。
只需使用 VirtualBox 圖形界面重新定位文件disk.vmdk
:
C:\\Users\\{myUsername}\\.docker\\machine\\machines\\default\\disk.vmdk
到另一個文件夾中,比如F:\\docker-image\\
C:\\Users\\{myUsername}\\.docker\\machine\\machines\\default\\disk.vmdk
F:\\docker-image\\
。VirtualBox
,選擇default
VM 並打開Settings
。Storage
,選擇當前disk.vmdk
並釋放它(或刪除它)。Choose Virtual Hard Disk File...
並在F:\\docker-image\\
搜索復制的文件File
,選擇Virtual Media Manager...
並釋放或刪除舊的disk.vmdk
4.
,大功告成!在運行 docker 快速啟動終端時輸入這兩個命令。
我想你的新位置是“D:\\docker”,你的新機器名稱是“docker1”
export MACHINE_STORAGE_PATH=D:\\docker
docker-machine create --driver=virtualbox docker1
這應該在您的新位置創建具有指定名稱的新機器。
我無法讓 MACHINE_STORAGE_PATH 環境變量方法工作。 首次初始化機器時,它一直抱怨缺少證書。 仍然在 Windows 7 上,所以必須使用 docker-toolbox。
我通過以下方式解決了這個問題:
我對上述任何解決方案都遇到了一些麻煩,但這對我有用:
MACHINE_STORAGE_PATH
環境變量以指向所需的目錄/文件夾。.docker
,那很好,但對我來說它仍然安裝在.docker
目錄中。.docker
文件夾一起創建的默認機器。start.sh
腳本並在頂部添加了一行:例如
export MACHINE_STORAGE_PATH=D:\\Docker
安裝 Docker Toolkit 和 VM 必須在安裝 docker toolkit 后使用 Admin Privileges 安裝(*因為 Docker Toolkit 也安裝 VM,但它的版本較低,並且會導致其他 iso 文件出現問題,您也可以取消選中,在這種情況下,*) . 現在我們必須更改 disk.vmdk 的位置並更新 VM 中的新位置。
VirtualBox.exe
(不是安裝程序)所在的位置並右鍵單擊它(您可以從桌面上創建的快捷方式中找到)run this program as administrator
Kitematic
,如果它失敗(它可能會)然后選擇與 VM 相關的選項(只有 2 個選項)default
映像(右鍵單擊 -> 關閉 --> 關閉電源)disk.vmdk
文件(對我而言,它位於C:\\Users\\Dell\\.docker\\machine\\machines\\default\\disk.vmdk
)復制粘貼到您要存儲下載的圖像的位置(基本上是C:\\Users\\Dell\\.docker\\machine\\machines\\default\\disk.vmdk
) disk.vmdk
當您使用 docker 時, disk.vmdk
大小會增加)default
圖像並轉到設置disk.vmdk
附件 --> 刪除(這是綁定 disk.vmdk 的舊路徑)file
--> virtual media manager
並從此處刪除disk.vmdk
(現在 VM 不知道是否存在這樣的 disk.vmdk)default
鏡像-->存儲--> add hard disk
(這個選項就在那個iso鏡像的上面)disk.vmdk
docker run hello-world
我從安裝開始就寫了一個非常描述性的答案,因為我確實遇到了一些問題,所以想讓其他人非常直接。
如果你想,你可以從你的 C 驅動器中刪除你的 disk.vmdk 磁盤(舊的)
創建名為 c:\\programdata\\docker\\config\\daemon.json 的文件,內容如下,其中 e:\\images 是您要存儲所有圖像的位置等。重新啟動 docker。
{ "graph": "e:\\\\images" }
這就像一個魅力
參考 - https://forums.docker.com/t/where-are-images-stored/9794/11
截至最新版本,這些答案已過時。 該位置可在“設置”用戶界面中配置。
我發現很多這些答案都沒有數據,至少它們在我的環境中不起作用:win10 PRO,docker desktop community 2.0.0.3。 最后,我通過這種方法解決了這個問題:
卸載碼頭工人
打開 Hyper-V 管理器(按 WIN 鍵,然后輸入“Hyper”)
更改Hyper-V設置中的默認虛擬硬盤位置(而不是 VM 設置)並確認
安裝碼頭工人
在 docker 設置的高級選項中檢查磁盤映像位置
對於 Windows 7:
將您的 disk.vmdk 文件(對我來說它存在於 C:\\Users\\name.docker\\machine\\machines\\default\\disk.vmdk)復制粘貼到您要存儲下載的圖像的位置(基本上是 disk.vmdk當您使用 docker 時,大小會增加)
在 Virtualbox 中右鍵單擊默認圖像並轉到設置選擇存儲通過右鍵單擊刪除 disk.vmdk 附件 --> 刪除
單擊文件 --> 虛擬媒體管理器並從此處刪除 disk.vmdk
右鍵單擊默認映像--> 存儲--> 添加硬盤(此選項位於該iso 映像的正上方)現在選擇您已粘貼到某處的disk.vmdk
現在更改 config.json 中的此路徑 (C:\\Users\\name.docker\\machine\\machines\\default\\config.json) 使用這個新的路徑更改存儲路徑,您可以在其中放置硬盤的位置(“StorePath”: "F:\\docker-image")
節省。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.