Tim*_*son 9 python pycharm docker
我是Docker的新手.我正在使用Docker和docker-compose,通过一个烧瓶教程.基础docker镜像是python 2.7 slim.它在Linux上运行.docker 1.11.2应用程序运行正常.我想让pycharm pro连接到远程解释器,这是我以前从未做过的事情.
我按照docker-compose的说明进行操作.最初它失败了,因为它无法连接到端口2376.我将此端口添加到docker-compose.yml并且错误消失了.但是,尝试保存配置现在会停止/挂起对话框"获取远程解释器版本".这永远不会完成.另外,我不能退出pycharm.这发生在Pycharm 2016.2和2016.3 EAP(第二版)中.
帮助说"将助手复制到服务器需要SFTP支持".这是否意味着我需要做点什么?
Tim*_*son 15
我没有使用docker-machine问题是默认情况下在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
定制码头
可以通过覆盖默认CoreOS设置附带的设备来自定义Docker systemd单元.下面介绍了执行此操作的常见用例.
在新套接字上启用远程API
创建一个名为/etc/systemd/system/docker-tcp.socket的文件,以便在端口2375上的TCP套接字上使Docker可用.
Run Code Online (Sandbox Code Playgroud)[Unit] Description=Docker Socket for the API [Socket] ListenStream=2375 BindIPv6Only=both Service=docker.service [Install] WantedBy=sockets.target然后启用这个新套接字:
Run Code Online (Sandbox Code Playgroud)systemctl enable docker-tcp.socket systemctl stop docker systemctl start docker-tcp.socket systemctl start docker测试它是否正常工作:
Run Code Online (Sandbox Code Playgroud)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开头的行修改为如下所示:
Run Code Online (Sandbox Code Playgroud)ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:2375我添加的是"-H tcp://0.0.0.0:2375"部分.保存修改后的文件.重启Docker服务:
Run Code Online (Sandbox Code Playgroud)sudo service docker restart测试Docker API确实可访问:
Run Code Online (Sandbox Code Playgroud)curl http://localhost:2375/version
| 归档时间: |
|
| 查看次数: |
7744 次 |
| 最近记录: |