Miguel Asked: 2019-07-20 11:07:39 +0800 CST2019-07-20 11:07:39 +0800 CST 2019-07-20 11:07:39 +0800 CST 如何将 docker 图像移动到 Windows 中的其他驱动器 772 我尝试运行以下脚本,但dockerd在我的工作站中无法识别。 我的操作系统是 windows 10。刚刚安装了最新版本的 docker 18.09.2 这是我第一次接触 docker。 windows 3 个回答 Voted Maskim 2020-07-16T05:17:46+08:002020-07-16T05:17:46+08:00 这个答案更像是Jean-François Beauchamp 的答案的补充:您可以在Docker 的文档 中找到有关此配置文件的完整文档。 说明: --data-root是存储持久数据(如图像、卷和集群状态)的路径。 和 --exec-root是存储容器状态的路径。默认值为 /var/run/docker。在此处指定正在运行的守护程序的路径。 所以如果你想移动你的容器和图像(以及其他东西),你必须设置这两个参数。 您还可以创建一个简单的链接,Docker 期望其文件夹重定向到所需的位置。此处对其进行了 描述并导致相同的结果。它看起来很“脏”,但最终看起来比第一个解决方案更稳定。 使用 WSL 2 引擎(适用于 Windows 家庭版和家庭版) "D:\\Docker\\data-root"Miguel 建议的值将使 Docker 崩溃,因为它必须是 WSL 文件夹。 但是,Docker 创建了一个特定的 WSL 发行版,其中包含您的 docker 数据,您可以移动它。这不需要修改 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参数是您要“安装”您的 Distro 的路径,例如D:\Docker\data-root Jean-François Beauchamp 2020-06-10T11:44:02+08:002020-06-10T11:44:02+08:00 在适用于 Windows 的 Docker v19.03.8 上,我将graph参数添加到我的配置中,它对我有用,但显然,这个参数已被弃用,我们现在应该data-root改用它。data-root的默认值为c:\programdata\docker。请注意,在 JSON 配置文件中,反斜杠需要转义。 Best Answer Miguel 2019-07-20T15:10:41+08:002019-07-20T15:10:41+08:00 根据这篇文章找到其他方法。 对于 Unix 容器,可以通过 Docker Desktop 界面在设置表单中更改图像的路径。但是,如果您使用 Windows 容器功能,则会安装第二个服务,即“Docker 引擎”。要更改此服务的图像文件夹,请执行以下步骤: 1)获取配置文件的路径。转到管理工具-> 服务。检查 docker demo 命令行以获取服务“Dock Engine” 命令行类似于 "C:\Program Files\Docker\Docker\Resources\dockerd.exe" --run-service --service-name docker -G myPc" --config-file C:\ProgramData\DockerDesktop\tmp-d4w\daemon。 json 2) 编辑配置文件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" } 如有必要,请授予运行帐户访问该文件夹的权限。 3)重启服务。如果没有启动,请检查eventlog可能的错误。 当您更改安装位置时,c:\ProgramData\Docker 中先前配置的数据将丢失。这就像一个新的安装到一个新的位置。(图像、容器等)。将再次创建所有子文件夹。 要保持系统驱动器的最小值,请在全新安装时执行此操作。 我不是 100% 确定这个解决方案,但到目前为止,docker 工作正常,系统驱动器占用很小。
这个答案更像是Jean-François Beauchamp 的答案的补充:您可以在Docker 的文档
中找到有关此配置文件的完整文档。
说明:
和
所以如果你想移动你的容器和图像(以及其他东西),你必须设置这两个参数。
您还可以创建一个简单的链接,Docker 期望其文件夹重定向到所需的位置。此处
对其进行了 描述并导致相同的结果。它看起来很“脏”,但最终看起来比第一个解决方案更稳定。
使用 WSL 2 引擎(适用于 Windows 家庭版和家庭版)
"D:\\Docker\\data-root"
Miguel 建议的值将使 Docker 崩溃,因为它必须是 WSL 文件夹。但是,Docker 创建了一个特定的 WSL 发行版,其中包含您的 docker 数据,您可以移动它。这不需要修改 dockerd 参数。
移动 docker 的 WSL 发行版
X:\wslStore
参数是您要“安装”您的 Distro 的路径,例如D:\Docker\data-root
在适用于 Windows 的 Docker v19.03.8 上,我将
graph
参数添加到我的配置中,它对我有用,但显然,这个参数已被弃用,我们现在应该data-root
改用它。data-root
的默认值为c:\programdata\docker
。请注意,在 JSON 配置文件中,反斜杠需要转义。根据这篇文章找到其他方法。
对于 Unix 容器,可以通过 Docker Desktop 界面在设置表单中更改图像的路径。但是,如果您使用 Windows 容器功能,则会安装第二个服务,即“Docker 引擎”。要更改此服务的图像文件夹,请执行以下步骤:
1)获取配置文件的路径。转到管理工具-> 服务。检查 docker demo 命令行以获取服务“Dock Engine”
命令行类似于
2) 编辑配置文件
daemon.json
并添加 data-root 属性。属性值应指向所需位置。应该看起来像这样。检查此以获取有关 json 结构的信息。}
如有必要,请授予运行帐户访问该文件夹的权限。
3)重启服务。如果没有启动,请检查
eventlog
可能的错误。当您更改安装位置时,c:\ProgramData\Docker 中先前配置的数据将丢失。这就像一个新的安装到一个新的位置。(图像、容器等)。将再次创建所有子文件夹。
要保持系统驱动器的最小值,请在全新安装时执行此操作。
我不是 100% 确定这个解决方案,但到目前为止,docker 工作正常,系统驱动器占用很小。