Docker:无法读取CA证书

Pol*_*ina 21 docker windows-10

我在Windows 10 Pro上安装了Docker,但我无法使用它.

当我尝试运行hello-world时,我得到了

could not read CA certificate 
Run Code Online (Sandbox Code Playgroud)

它正在寻找机器/机器/默认的证书.但是该文件夹不存在.

我创建了一个名为"默认"的机器(它创建了上面提到的文件夹),但这没有帮助.

在此之前,我创建了另一台名为"dev"的机器,它似乎有证书,但这似乎也没有帮助.

机器/机器中还有证书文件 - 我不知道我是否应该以某种方式指向Docker查看该文件夹(而不是机器/机器/默认)?

我对Docker很陌生,所以我可能会遗漏一些东西.但是我整天都在这里,阅读Docker文档,尝试了大量的解决方案和类似的答案,但似乎没有任何工作.

小智 59

我遇到过同样的问题.问题是,我从Docker Toolbox升级到Docker for Windows.卸载Docker Toolbox时,不会删除特定于用户的env变量.以下为我做了诀窍:

  1. 卸载Docker Toolbox.
  2. 卸载VirtualBox(您不能同时使用VirtualBox,因为Docker Toolbox和Hyper-V [由Docker for Windows使用]是必需的.)
  3. 删除Docker Toolbox env变量:
    • 转到控制面板\所有控制面板项\系统.
    • 单击高级系统设置
    • 转到" 高级"选项卡,然后单击" 环境变量".
    • DOCKER_*从系统/用户变量中删除所有条目.
      • DOCKER_TLS_VERIFY
      • DOCKER_CERT_PATH
      • DOCKER_HOST
      • DOCKER_TOOLBOX_INSTALL_PATH
  4. 从命令提示符或PowerShell中删除DOCKER_*.在PowerShell中运行以下命令:

    [Environment]::SetEnvironmentVariable("DOCKER_CERT_PATH", $null, "User")

    [Environment]::SetEnvironmentVariable("DOCKER_HOST", $null, "User")

    [Environment]::SetEnvironmentVariable("DOCKER_MACHINE_NAME", $null, "User")

    [Environment]::SetEnvironmentVariable("DOCKER_TLS_VERIFY", $null, "User")

    [Environment]::SetEnvironmentVariable("DOCKER_TOOLBOX_INSTALL_PATH", $null, "User")

  5. 重新启动PowerShell.(如有必要,也可以重启系统.)

资料来源:


小智 5

之前(长时间)删除的 Docker Toolbox 安装中遗留的环境变量导致 Docker Desktop 出现此问题(在 HyperV 之后启动正常。将它们全部删除,删除这些环境变量

  • DOCKER_TLS_VERIFY
  • DOCKER_CERT_PATH
  • DOCKER_HOST
  • DOCKER_TOOLBOX_INSTALL_PATH

, 重启终端,现在一切正常