繁体   English   中英

Docker 无法在 Windows 上初始化

[英]Docker Failed to Initialize on Windows

在这里,我在 docker 图像中拉动 docker-dev 以创建我的开发环境时遇到问题,但是当我尝试拉动 docker-dev 时。 我收到类似 docker manifest not found 的错误。 任何人都可以帮我解决这个错误......请

在此之前我想知道我现在遇到的 docker 无法初始化错误...

错误就像, 在此处输入图像描述

我尝试了很多东西,例如重新安装 docker 桌面或 WSL 更新,但都没有用。

命令中的错误就像...... 在此处输入图像描述 所以如果有人能帮我解决这个问题....请帮帮我

遇到了同样的问题,并通过删除 Github 用户“tocklime”提到的%appdata%\Docker来修复它

(原文来源: https ://github.com/docker/for-win/issues/3088) 在此处输入图像描述

我的解决方案:删除 %appdata%\Docker\settings.json 并让 Docker 创建一个新的。

备份文件以备下次损坏。

<tl;博士>

我几乎每个月都会遇到这个问题,我希望这肯定会得到解决。

tmBlackCape回答之后,我检查了 %appdata%\Docker 目录,发现 settings.json 已损坏(编辑器告诉它是二进制文件,当然不应该)。

我删除了该文件,Docker 服务(仍在运行)创建了一个具有默认值的新文件。 如果服务没有运行,只需再次启动它。

您可能需要更改设置(通过 GUI,如建议的那样)以满足您的需求。

我制作了自定义 settings.json 的备份副本,因此下次我可以替换损坏的,而不会丢失自定义配置。

转到目录C:\Users--------\AppData\Roaming\Docker并删除文件settings.json Docker 负责在启动时重写它。

这种操作为我解决了问题!

Docker 初始化失败

C:\Users[USER]\AppData\Local\Docker

C:\Users[USER]\AppData\Roaming\Docker

C:\Users[USER]\AppData\Roaming\Docker 桌面

删除上述目录后,我无需执行任何其他操作,Docker Desktop 开始正常启动。

在 Docker Desktop 升级到版本 3.6.0 (67351) 后,这也发生在我身上。 (这令人惊讶,因为它在升级之前就可以工作。)

由于现在最佳答案中的帮助,我去了上面的设置目录: %appdata%\Docker ,查看了日志并删除/重命名了文件 settings.json -> Docker Desktop 立即启动 有一个进程在后台重试。

在此之前,backend.exe.log 都是“解组”的东西:

    settings.json: json: cannot unmarshal bool into Go struct field Content.proxyHttpMode of type string"
common/cmd/com.docker.backend/internal/settingsloader.GetSettings(0x0, 0x0, 0x0)

因此,上面的消息“提示我”关于启动时的实际错误可能在哪里。 唔...

对我来说,这里的解决方案没有帮助,但这里有帮助。

  1. 确保主目录中的文件夹.docker/在 Windows 中未标记为隐藏。 如果它被隐藏,Docker 将看不到它。
  2. 确保 docker 有 Active Directory 到.docker文件夹。 例如,如果.docker/的所有者是SYSTEM而不是您的用户,Docker 将无法读取它并崩溃。

对我来说,删除文件夹 %appdata%\Docker 不起作用。

相反,我必须以管理员身份运行以下 power shell 命令。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

参考。

  1. https://stackoverflow.com/a/63845592/1977871

  2. https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v#enable-hyper-v-using-powershell

我的运行 docker 桌面的 windows 功能如下。

Windows 功能的屏幕截图

我遇到过同样的问题。 我在 Docker 桌面版 4.8.0 上。 以下解决方案对我有用:

  1. 卸载Docker桌面
  2. C:\Users\{Username}
  3. C:\Users\{Username}\AppData\Local
  4. C:\Users\{Username}\AppData\Roaming
  5. C:\Program Files中删除 Docker 文件夹
  6. 在注册表和自定义清理上运行 CCleaner
  7. 重启电脑
  8. 安装 Docker
  9. 重启电脑
  10. 开始 Docker

就这样。

  1. 转到 C:\Users\asd\AppData\Local 并删除下载的安装目录。
  2. C:\Users\asd\AppData\Roaming 并删除 Docker 和 Docker Desktop 目录。

然后启动码头工人。

在 users[myUser] 或任何地方找不到 AppData 文件夹。 重新安装为我解决

我得到的错误信息与 OP 得到的不完全相同。 对我来说,它说Docker failed to initialize. Docker Desktop is shutting down Docker failed to initialize. Docker Desktop is shutting down

TL;博士

我的本地机器PATH中缺少powershell可执行文件。 我不得不添加C:\Windows\System32\WindowsPowerShell\v1.0并且 docker 再次启动。

更长的故事

我尝试了该线程中提到的所有内容,但对我没有任何帮助。 当我查看本地机器的任务管理器以查看是否启动了任何与 docker 相关的进程时,我注意到Docker Desktop.exe本身已启动。 但是, com.docker.backend.exe不行。 Docker 尝试在无限循环中启动该 exe,但一旦启动,它在半秒后再次崩溃。

然后我查看了位于 % com.docker.backend.exe.log %localappdata%\Docker\log\host中的 com.docker.backend.exe.log 并注意到以下行:

[2022-07-07T10:46:57.936079700Z][com.docker.backend.exe][F] exec: "powershell": executable file not found in %PATH%

然后我继续并将powershell的路径添加到PATH (即C:\Windows\System32\WindowsPowerShell\v1.0 )`。 我一添加,一切就又开始工作了。

我不知道 powershell 可执行文件的路径是如何从PATH中删除的。 我自己当然没有这样做。

您必须删除 %appdata%\\Docker 并重新启动计算机

它是由于本地数据损坏而发生的。 您可以在%appdata%\Docker. 我能够通过重命名setting.json来重置和重新启动,然后通过删除所有以前的日志文件夹和临时文件夹清理来重新启动 Docker 桌面。 如果这没有帮助。 尝试杀死通过任务管理器运行的所有进程在此处输入图像描述

然后以管理员模式运行Power shell ,如果您使用的是旧版本的 Lsmanager Restart-Service LxssManager ,则执行命令。 在此处输入图像描述

在我这边,卸载 HyperV 就可以了:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor

我也(如投票答案中所建议):

  • 卸载docker桌面,
  • 按照建议删除了 %APPDATA% 中的任何 docker 相关内容
  • 删除注册表中任何与 docker 相关的密钥(可能没有必要)
  • 然后重新安装了

它解决了这个问题(但没有删除 hyperV 它不起作用)。

它通过删除文件 C:\Users{username}\AppData\Roaming\Docker\settings.json 解决了我

有一些很好的解决方案; 但是,它对我不起作用。 这里建议的大多数“修复”已经实施,只是没有奏效。 我选择了不同的方法。 我查看了 docker 版本,发现最新版本不工作(4.10)实际影响了什么。 这些都是正常的,尤其是在软件引擎已经更新的情况下。 浏览 Docker 版本,没有触及 Docker 引擎的最新版本是 4.8.0。 我下载了,效果很好。

最新更新 4.10.1 有问题,我降级到 4.6.1 并且它工作但我认为 powershell 与这个问题密切相关

删除settings.json文件或%AppData%\Docker文件夹对我不起作用。 卸载/安装 docker 后,问题得到解决。 (注意:我无法尝试其他需要管理员权限的可能解决方案)

以下步骤对我有用,

步骤01:导航到下面提到的路径并删除下面提到的目录,

C:\Users[USERNAME]\AppData\Local\Docker 目录

C:\Users[用户名]\AppData\Roaming\Docker 目录

C:\Users[USERNAME]\AppData\Roaming\Docker 桌面目录

然后再次重启docker

如果您没有在 users[USERNAME] 或任何地方找到 AppData 文件夹

步骤02:在“运行”中输入以下路径,直接为您打开应用数据位置

%appdata%\Docker

然后删除下面提到的目录,

C:\Users[USERNAME]\AppData\Local\Docker 目录

C:\Users[用户名]\AppData\Roaming\Docker 目录

C:\Users[USERNAME]\AppData\Roaming\Docker 桌面目录

然后再次重启docker

注意:如果这些步骤对您没有帮助。 尝试杀死通过任务管理器运行的所有进程。 再次删除目录并启动 docker

如果你仍然找不到问题,你可以使用这个技巧,我 100% 确定这会起作用

首先检查您的操作系统是否是最新的意味着如果您通过此步骤则没有剩余的更新然后以管理员身份运行以 2 步打开 window 命令提示符然后键入 wsl --install 然后键入 wsl --list --online 然后 wsl -- install -d Debian 然后打开 docker 如果出现错误然后安装 wsl 2 linux https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel -更新包

然后重新启动 docker 或您的机器,如果还发生错误,则键入 wsl --update 我希望这会起作用注意:Hammad Khadim

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM