pycharm无法完成Docker的远程解释器设置

时间:2016-10-09 07:30:38

标签: python docker pycharm

我是Docker的新手。我正在使用Docker& docker-compose,通过一个烧瓶教程。基础docker镜像是python 2.7 slim。 它在Linux上运行。码头1.11.2 该应用程序运行正常。 我想让pycharm pro连接到远程解释器,这是我以前从未做过的事情。

我按照docker-compose的说明进行操作。最初它失败了,因为它无法连接到端口2376.我将此端口添加到docker-compose.yml并且错误消失了。 但是,尝试保存配置现在会停止/挂起对话框'获取远程解释器版本'。这永远不会完成。另外,我不能退出pycharm。这发生在Pycharm 2016.2和2016.3 EAP(第二版)中。

帮助说"将助手复制到服务器"需要SFTP支持。 这是否意味着我需要做点什么?

2 个答案:

答案 0 :(得分:13)

我没有使用泊坞机 问题是默认情况下在ubuntu 16.04下没有建立对docker API的TCP访问。

有建议启用TCP / IP访问。

然而,JetBrains给了我最简单的解决方案:

  

如果您使用的是Linux,很可能是安装了Docker   它的默认设置和Docker期望通过UNIX使用   域文件套接字/var/run/docker.sock。你应该指明   API URL字段中的unix:///var/run/docker.sock。请评论   是否有帮助!

这个建议适用于我的Ubuntu 16.04衍生版本。

这将进入构建,执行,部署下的PyCharm首选项中的Docker条目。

您也可以在设置远程解释器时编辑它,但只能通过创建一个新的Docker条目。

TCP / IP方法

如果您想要TCP / IP访问,此方法有效,但这存在安全风险。套接字方法更好,这可能是它默认的原因。

https://coreos.com/os/docs/latest/customizing-docker.html

  

自定义泊坞窗

     

可以通过覆盖该单元来定制Docker systemd单元   附带默认的CoreOS设置。做的常见用例   这包括在下面。

     

在新套接字上启用远程API

     

创建一个名为/etc/systemd/system/docker-tcp.socket的文件   Docker在端口2375上的TCP套接字上可用。

[Unit]
Description=Docker Socket for the API

[Socket]
ListenStream=2375
BindIPv6Only=both
Service=docker.service

[Install]
WantedBy=sockets.target
     

然后启用这个新套接字:

systemctl enable docker-tcp.socket
systemctl stop docker
systemctl start docker-tcp.socket
systemctl start docker
     

测试它是否正常工作:

docker -H tcp://127.0.0.1:2375 ps

一旦我想要搜索ubuntu 16.04,我遇到了更简单的解决方案,但我没有测试它们。

例如:

https://www.ivankrizsan.se/2016/05/18/enabling-docker-remote-api-on-ubuntu-16-04/

  

编辑文件/lib/systemd/system/docker.service

     

将以ExecStart开头的行修改为:

ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:2375
     

我添加的是“-H tcp://0.0.0.0:2375”部分。保存   修改过的文件重启Docker服务:

sudo service docker restart
     

测试Docker API确实可访问:

curl http://localhost:2375/version

答案 1 :(得分:3)

I - docker-compose up

我认为PyCharm将运行docker-compose up,您是否尝试首先在您的终端(您的docker-compose.yml所在地)运行此命令?

如果发生某些错误,您可以在终端获得更多信息。

II - pycharm泊坞窗配置

否则可能是由于您在PyCharm中的docker机器配置。

我如何配置机器并确保正确配置此机器:

1 - 在你的shell中运行docker-machine ls

enter image description here

2 - 复制粘贴不带tcp://

的网址

3 - 转到pycharm首选项 - > Build, Execution, Deployement - > Docker - > +创建新服务器,填写服务器name字段

enter image description here

4 - 粘贴之前复制的网址,保留https://

5 - 填写机器证书文件夹的路径

6 - 勾选Import credentials from Docker Machine

7 - 点击Detect - >您的机器应出现在选择列表中

8 - 保存此服务器

9 - 在配置远程解释器时选择此服务器,来自PyCharm首选项 - > Project - > Project Interpreter - > wheel - > add remote - > DockerDocker Compose

enter image description here

10 - 您应该可以选择服务名称

11 - 保存新口译员

11 - 尝试两次运行测试,有时可能需要一些时间来初始化