如何将 docker 图像移动到 Windows 中的其他驱动器

Mig*_*uel 14 windows docker

我尝试运行以下脚本,dockerd在我的工作站中无法识别。

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

这是我第一次使用 docker。

Mas*_*kim 15

这个答案更像是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
Run Code Online (Sandbox Code Playgroud)

X:\wslStore参数是要“摩的”的路径你的发行版,像D:\Docker\data-root


小智 5

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

在此输入图像描述


Mig*_*uel 3

在此基础上寻找其他方法来做到这一点文章寻找其他方法来做到这一点。

\n\n

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

\n\n

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

\n\n

在此输入图像描述

\n\n

命令行是这样的

\n\n
\n
\n

“C:\\ Program Files \\ Docker \\ Docker \\ Resources \\ dockerd.exe”--run-service --service-name docker -G myPc“--config-file C:\\ ProgramData \\ DockerDesktop \\tmp-d4w\\daemon.json

\n
\n
\n\n

2) 编辑配置文件daemon.json并添加 data-root 属性。属性值应指向所需位置。应该看起来像这样。检查这个以获取有关 json 结构的信息。

\n\n
{\n  "registry-mirrors": [],\n  "insecure-registries": [],\n  "debug": true,\n  "experimental": false,\n  "hosts": [\n  "npipe:////./pipe/docker_engine_windows"\n  ],\n  "data-root":"D:\\\\Docker\\\\data-root" \n
Run Code Online (Sandbox Code Playgroud)\n\n

}

\n\n

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

\n\n

3) 重新启动服务。\n如果没有启动,请检查eventlog可能的错误。

\n\n

当您更改安装位置时,c:\\ProgramData\\Docker 中先前配置的数据将丢失。\n它\xe2\x80\x99s 就像新安装到新位置一样。(图像、容器等)。所有子文件夹将再次创建。

\n\n

要保持系统驱动器上的最低限度,请在全新安装时执行此操作。

\n\n

我对这个解决方案不是 100% 确定,但到目前为止,docker 工作正常,系统驱动器占用很少。

\n