[英]Docker Failed to Initialize on Windows
遇到了同样的问题,并通过删除 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)
因此,上面的消息“提示我”关于启动时的实际错误可能在哪里。 唔...
对我来说,这里的解决方案没有帮助,但这里有帮助。
.docker/
在 Windows 中未标记为隐藏。 如果它被隐藏,Docker 将看不到它。.docker
文件夹。 例如,如果.docker/
的所有者是SYSTEM
而不是您的用户,Docker 将无法读取它并崩溃。对我来说,删除文件夹 %appdata%\Docker 不起作用。
相反,我必须以管理员身份运行以下 power shell 命令。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
参考。
我的运行 docker 桌面的 windows 功能如下。
我遇到过同样的问题。 我在 Docker 桌面版 4.8.0 上。 以下解决方案对我有用:
C:\Users\{Username}
C:\Users\{Username}\AppData\Local
C:\Users\{Username}\AppData\Roaming
C:\Program Files
中删除 Docker 文件夹就这样。
然后启动码头工人。
在 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 并重新启动计算机
在我这边,卸载 HyperV 就可以了:
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor
我也(如投票答案中所建议):
它解决了这个问题(但没有删除 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.