场景是这样子:笔记本(ubuntu18.04_192.168.1.2)上安装了pycharm专业版,然后远程调试gpu服务器(ubuntu18.04_192.168.1.3)上的python脚本.
因为默认docker启动后默认没有提供端口访问,在安全性不严格的情况下可以添加一个2375端口,使得其他电脑可以通过该端口访问docker api.可以参考如下操作
1、修改docker服务文件
sudo vim /lib/systemd/system/docker.service
2、找到“ExecStart=/usr/bin/dockerd”,在 dockerd 后添加
-H tcp://0.0.0.0:2375
修改后该行类似如下:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
3 重启docker 服务
sudo systemctl daemon-reload #重新加载服务的配置文件
sudo service docker restart #重启docker服务
接下来在pycharm 中操作
1,新建一个远程python解释器,依次点击 File-Settings-Project:untitled1-Project Interpreter,然后点击右上角的齿轮 Add...
选择 Docker ,点击右侧的 New
name输入一个名称,选择 TCP socket方式在Engine API URL中输入http://192.168.1.3:2375,正常情况下会看到 Connection successful
用下拉箭头选择需要的docker镜像(注意此处为演示,Server和上一步的Name:gpu不一致,只是截图时间的原因.)
点击OK应该就可以看到此镜像的python包信息
确保Console中Python Console的解释器和项目解释器一致,点击 OK,完成添加远程docker解释器的步骤.
接下来需要配置部署,以实现代码同步的功能,依次点击 Tools-Deployment-Configuration,再点击左上角的+
在Connection选项页中填入 gpu服务器的IP,ssh端口,用户名,密码,
接着在 Mappings(映射)中填写映射信息,即将本地的代码通过sftp上传到gpu的路径.点击OK
接下来新建一个python脚本测试
输入随意内容
然后添加一个调试配置,首先添加Path mappings,Local path(本机项目的路径),Remote path(gpu服务器上的路径,需要和之前的Deployment Path一致)
继续设置 Docker Container settings,添加一个Volume bindings,其中Container path可以任意,Host path需要和之前的Deployment Path一致.
完成后如下所示(不要勾选Run with Python Console!!!),点击OK.
点击右上角的运行后即可远程在docker镜像中运行python脚本.
以上就是用pycharm远程调试docker中python脚本的步骤.记录一下方便自己后续查阅.