You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 10 Pro安装Docker后运行hello-world报错:无法读取CA证书

解决Windows 10 Pro上Docker "could not read CA certificate" 错误

我之前在Windows 10 Pro上折腾Docker的时候,刚好碰到过这个一模一样的问题,当时也是绕了好几个弯才解决,给你分享几个亲测有效的方案:

方案1:手动指定正确的证书路径环境变量

看起来Docker一直在找default机器的证书,但你的有效证书在dev机器或者其他路径下,那我们直接告诉Docker去哪里找证书:

  • 先找到你现有有效证书的文件夹路径,比如C:\Users\<你的用户名>\.docker\machine\machines\dev(或者你提到的其他有证书的路径)
  • 打开系统环境变量设置:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 在「用户变量」区域添加以下三个变量:
    • DOCKER_TLS_VERIFY = 1
    • DOCKER_HOST = tcp://<你的机器IP>:2376(可以打开命令行执行docker-machine ip dev获取dev机器的IP)
    • DOCKER_CERT_PATH = 你找到的证书文件夹的绝对路径(比如上面的dev机器证书路径)
  • 设置完成后重启你的命令行工具(cmd/PowerShell都要重启),再执行docker run hello-world试试

方案2:重建default机器并配置环境

如果创建default机器的时候证书生成有问题,那就删掉重来:

  • 先删除现有的default机器:
    docker-machine rm default
    
  • 重新创建default机器(Windows下推荐用Hyper-V驱动,如果你之前用VirtualBox就换成--driver virtualbox):
    docker-machine create --driver hyperv default
    
  • 创建完成后,执行docker-machine env default,会输出对应的环境变量配置命令:
    • 如果是PowerShell,直接执行:
      & docker-machine env default | Invoke-Expression
      
    • 如果是cmd,执行:
      @FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i
      
  • 最后再运行docker run hello-world测试

方案3:检查Docker Desktop配置冲突

如果你是用Docker Desktop的话,可能之前的docker-machine虚拟机和Desktop的配置冲突了:

  • 打开Docker Desktop的设置面板,切换到「Resources」→「Advanced」,确认虚拟机驱动(Hyper-V或WSL2)和你创建机器时用的一致
  • 可以尝试重置Docker Desktop到默认设置:设置→「Reset」→「Reset to factory defaults」(注意:这个操作会清除所有本地镜像和容器,记得提前备份重要内容)

额外注意事项

  • 确保你运行命令行工具时是管理员权限,权限不足也可能导致证书读取失败
  • 检查证书文件夹的权限:右键证书文件夹→「属性」→「安全」,确认当前用户有「读取」权限

内容的提问来源于stack exchange,提问作者Polina

火山引擎 最新活动