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

我是Docker的新手。 我正在使用Docker&docker-compose,通过烧瓶教程。 基地docker的图像是python2.7苗条。 它在Linux上运行。 docker工1.11.2应用程序工作正常。 我想让pycharm pro连接到远程解释器,这是我以前从未做过的事情。

我按照docker-compose的说明。 最初它失败了,因为它无法连接到端口2376.我将此端口添加到docker-compose.yml并错误消失。 但是,尝试保存configuration现在会暂停/挂起对话框“获取远程解释器版本”。 这从来没有完成。 另外,我不能退出pycharm。 这发生在Pycharm 2016.2和2016.3 EAP(2nd)中。

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

我没有使用docker机器问题是,在docker API的TCP访问没有在默认情况下在Ubuntu 16.04下build立。

有build议来启用TCP / IP访问。

但是,JetBrains给了我最简单的解决scheme:

如果您使用的是Linux,那么使用缺省设置和Docker安装的Docker最有可能通过UNIX域文件套接字/var/run/docker.sock来使用。 你应该在API URL字段中指定unix:///var/run/docker.sock。 请评论是否有帮助!

这个build议与我的Ubuntu 16.04衍生发行。

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

您也可以在设置远程解释器的同时进行编辑,但仅限于创build新的Docker条目。

TCP / IP方法

如果您想要TCP / IP访问,此方法工作,但这是一个安全风险。 套接字的方法更好,这可能是为什么它是默认的。

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

定制docker

Docker系统单元可以通过覆盖默认CoreOS设置附带的单元来定制。 常见的用例如下。

在新套接字上启用远程API

创build一个名为/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 

testing它的工作:

 docker -H tcp://127.0.0.1:2375 ps 

一旦我想要searchUbuntu 16.04,我遇到了更简单的解决scheme,但我没有testing它们。

例如:

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 

testingDocker API确实可以访问:

 curl http://localhost:2375/version 

我 – docker – 组成

我想PyCharm会运行docker-compose up ,你有没有尝试在你的terminal(你docker-compose.yml位置)首先运行这个命令?

也许如果发生了一些错误,你会得到更多的信息在您的terminal。

II – pycharm dockerconfiguration

否则,可能是由于PyCharm中的docker机器configuration。

我做什么来configuration我的机器,并确保这个configuration正确:

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

在这里输入图像说明

2 – 复制粘贴URL没有tcp://

3 – 转到pycharm首选项 – > Build, Execution, Deployement – > Docker – > +创build一个新的服务器,填写服务器name

在这里输入图像说明

4 – 粘贴以前复制的url保持https://

5 – 填写机器证书文件夹的path

6 – 勾选Import credentials from Docker Machine

7 – 点击Detect – >你的机器应该出现在select列表中

8 – 保存这台服务器

9 – 从PyCharm Preferences – > Project – > Project Interpreter – > wheel – > add remote – > DockerDocker Composeconfiguration远程解释器时select这个服务器

在这里输入图像说明

10 – 你应该能够select一个服务名称

11 – 保存你的新口译员

11 – 尝试两次运行你的testing,有时可能需要一些时间来初始化