我是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支持。 这是否意味着我需要做点什么?
答案 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
2 - 复制粘贴不带tcp://
3 - 转到pycharm首选项 - > Build, Execution, Deployement
- > Docker
- > +
创建新服务器,填写服务器name
字段
4 - 粘贴之前复制的网址,保留https://
5 - 填写机器证书文件夹的路径
6 - 勾选Import credentials from Docker Machine
7 - 点击Detect
- >您的机器应出现在选择列表中
8 - 保存此服务器
9 - 在配置远程解释器时选择此服务器,来自PyCharm首选项 - > Project
- > Project Interpreter
- > wheel
- > add remote
- > Docker
或Docker Compose
10 - 您应该可以选择服务名称
11 - 保存新口译员
11 - 尝试两次运行测试,有时可能需要一些时间来初始化