【问题标题】:PyCharm cannot use interpreter in local docker-machinePyCharm 无法在本地 docker-machine 中使用解释器
【发布时间】:2018-09-12 14:19:47
【问题描述】:

我使用的是 windows 10 专业版,并且我已经使用 DockerToolBox 安装了 docker,所以我有一个在 VirtualBox 中运行的 docker 机器。当尝试使用我的 docker-machine 在 PyCharm 中配置解释器时,我收到以下错误:

“无法连接:java.lang.NullPointerException:未指定uri”

docker-machine error

当我选择“TCP socket”时,我得到以下与上面不同的错误:

“无法连接:java.io.IOException:在接收到任何数据之前通道已断开”

TCP socket error

我确信我的 docker-machine 正在运行,因为我可以使用 MobaXterm 或 XShell 等终端工具连接到它,并且我还可以连接到在我的 docker-machine 中运行的 MySQL。

【问题讨论】:

    标签: docker pycharm


    【解决方案1】:

    在 api url 中用 https:// 替换 tcp:// 在 Webstorm (Windows 8.1) 中对我有用。

    https://github.com/kubernetes/minikube/issues/580

    【讨论】:

    • 谢谢。这对我有用。我在 Photon OS 虚拟机中托管了一个安全的 Docker 实例。
    • 这行得通,奇怪的是 unix:// 和 tcp:// 是仅有的两个“支持的协议”。这是一个时髦的实现。
    【解决方案2】:

    我尝试了上千种方法,终于解决了这个问题。解决方案是以管理员身份运行 pycharm。见鬼

    【讨论】:

    • 就是这样!我也在为此挠头。
    • 您绝对不需要这样做...在这种情况下,由 PyCharm 创建的文件将无法被其他用户访问。这会产生很多其他问题。
    • 对我来说也一样(phpStorm 2019.3)谢谢
    【解决方案3】:

    我也有同样的问题。

    您必须检查 Pycharm 日志。有关于错误的详细信息。

    在我的情况下,Pycharm 显示相同的错误“在收到任何数据之前通道已断开”。

    但在日志中我发现错误是由以下原因引起的: “错误 - HttpResponseStreamHandlerFixed - 在第一次读取或断开连接之前捕获异常,我们可能会挂起 io.netty.handler.codec.DecoderException:javax.net.ssl.SSLHandshakeException:找不到与“my_server_hostname”匹配的名称”

    就我而言,问题是我连接的域名与安装在 dockerd 中的 SSL 自签名证书中的主机名不同。

    您要连接的域名必须与 dockerd 使用的 SSL 证书中的域名匹配。

    我必须制作主机记录(Windows 上的 C:\Windows\System32\drivers\etc\hosts 和 Linux 上的 /etc/hosts)并连接到它。

    并且需要“https://”协议:)

    附言。您可以通过使用 https 打开 Chrome 浏览器到 docker API 端点并打开证书详细信息来检查 SSL 证书主机名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-06
      • 2021-10-20
      • 2019-05-12
      • 1970-01-01
      • 2020-03-26
      • 2021-11-10
      • 2020-07-02
      • 1970-01-01
      相关资源
      最近更新 更多