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
– > Docker
或Docker Compose
configuration远程解释器时select这个服务器
10 – 你应该能够select一个服务名称
11 – 保存你的新口译员
11 – 尝试两次运行你的testing,有时可能需要一些时间来初始化