答案1
这个答案更多是Jean-François Beauchamp 的回答:
您可以在以下位置找到有关此配置文件的完整文档Docker 的文档。
文中指出:
--data-root
是存储图像、卷和集群状态等持久数据的路径。
和
--exec-root
是存储容器状态的路径。默认值为 /var/run/docker。在此指定正在运行的守护程序的路径。
因此,如果您想移动容器和图像(以及其他内容),则必须设置这两个参数。
您还可以创建一个简单的链接,Docker 希望其文件夹重定向到所需的位置。
它描述这里并导致相同的结果。它看起来很“脏”,但最终看起来比第一个解决方案更稳定。
使用 WSL 2 引擎(适用于 Windows 家庭版和家庭版)
"D:\\Docker\\data-root"
值作为由 Miguel 建议会导致 Docker 崩溃,因为它必须是 WSL 文件夹。
但是,Docker 会创建一个包含 Docker 数据的特定 WSL 发行版,你可以移动它. 这不需要修改dockerd参数。
移动 docker 的 WSL 发行版
wsl --export docker-desktop-data docker-desktop-data.tar
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data X:\wslStore\ docker-desktop-data.tar --version 2
该X:\wslStore
参数是您想要“安装”您的发行版的路径,例如D:\Docker\data-root
答案2
答案3
根据以下情况寻找其他方法这邮政。
对于 Unix 容器,可以通过 Docker Desktop 界面在设置表单中更改图像路径。但是,如果您使用 Windows 容器功能,则会安装第二个服务,即“Docker Engine”。要更改此服务的图像文件夹,请执行以下步骤:
- 获取配置文件的路径。转到管理工具->服务。检查 docker demon 命令行中的服务“Dock Engine”
命令行类似于
“C:\Program Files\Docker\Docker\Resources\dockerd.exe”--运行服务--服务名称docker -G myPc”--配置文件C:\ProgramData\DockerDesktop\tmp-d4w\daemon.json
- 编辑配置文件
daemon.json
并添加 data-root 属性。属性值应指向所需位置。应该看起来像这样。检查这有关 json 结构的信息。
{
"registry-mirrors": [],
"insecure-registries": [],
"debug": true,
"experimental": false,
"hosts": [
"npipe:////./pipe/docker_engine_windows"
],
"data-root":"D:\\Docker\\data-root"
}
如果有必要,授予运行帐户访问该文件夹的权限。
- 重新启动服务。如果没有启动,请检查
eventlog
可能的错误。
更改安装位置时,c:\ProgramData\Docker 中先前配置的数据将丢失。这就像在新的位置重新安装一样。(图像、容器等)。所有子文件夹都将重新创建。
为了保持系统驱动器上的最小值,请在全新安装时执行此操作。
我对这个解决方案不是 100% 确定,但到目前为止,docker 运行良好,并且系统驱动器占用很少。