如何将docker镜像移动到windows中的其他驱动器

如何将docker镜像移动到windows中的其他驱动器

我尝试运行以下命令脚本dockerd我的工作站无法识别。

我的操作系统是 Windows 10。刚刚安装了最新版本的 Docker,即 18.09.2

这是我第一次使用docker。

答案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

在适用于 Windows 的 Docker v19.03.8 上,我将graph参数添加到我的配置中,它对我有用,但显然,此参数已被弃用,我们现在应该改用data-root。的默认值data-rootc:\programdata\docker。请注意,在 JSON 配置文件中,反斜杠需要转义。

在此处输入图片描述

答案3

根据以下情况寻找其他方法邮政。

对于 Unix 容器,可以通过 Docker Desktop 界面在设置表单中更改图像路径。但是,如果您使用 Windows 容器功能,则会安装第二个服务,即“Docker Engine”。要更改此服务的图像文件夹,请执行以下步骤:

  1. 获取配置文件的路径。转到管理工具->服务。检查 docker demon 命令行中的服务“Dock Engine”

在此处输入图片描述

命令行类似于

“C:\Program Files\Docker\Docker\Resources\dockerd.exe”--运行服务--服务名称docker -G myPc”--配置文件C:\ProgramData\DockerDesktop\tmp-d4w\daemon.json

  1. 编辑配置文件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" 
}

如果有必要,授予运行帐户访问该文件夹的权限。

  1. 重新启动服务。如果没有启动,请检查eventlog可能的错误。

更改安装位置时,c:\ProgramData\Docker 中先前配置的数据将丢失。这就像在新的位置重新安装一样。(图像、容器等)。所有子文件夹都将重新创建。

为了保持系统驱动器上的最小值,请在全新安装时执行此操作。

我对这个解决方案不是 100% 确定,但到目前为止,docker 运行良好,并且系统驱动器占用很少。

相关内容