pycharm如何连接远程服务器的docker容器有两种方法:

第一种:pycharm通过ssh连接已在运行中的docker容器

第二种:pycharm连接docker镜像,pycharm运行代码再自动创建容器

本文是第一种方法的教程,第二种请点击以上的链接

条件:

(1)准备好pycharm专业版,社区版没有连接远程服务器的功能

(2)远程服务器ubuntu,已安装好docker

一、配置远程服务器的docker容器

  1. 启动并运行交互式容器
docker run -it -v /u01/nlp/rasa_igw:/igw -p 10098:22 -p 18006:8006 -p 18007:8007 -p 18027:18027 -p 18029:18029 --name rasa_i rasa_igw init

这里需要映射主机端口到容器端口,后续就是通过端口来连通容器的。

-p 10098:22:这里主机端口10098, 容器端口是22

2.进入交互式后修改容器的root密码

passwd

pycharm使用本地已有的docker环境 pycharm连接docker_服务器


3. 给容器安装openssh-server和openssh-client

apt-get install openssh-server
apt-get install openssh-client

安装可能出现以下错误:
Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
更新一下apt-get

apt-get update

还可以设置pip下载的豆瓣镜像:

pip config set global.index-url  https://pypi.doubanio.com/simple/
  1. 修改SSH配置文件以下选项
vim /etc/ssh/sshd_config

以上命令打开sshd_config文件,在文件最后面添加以下。

PermitRootLogin yes #允许root用户使用ssh登录

  1. 重启ssh服务
/etc/init.d/ssh restart

6.在容器外,测试端口是否通

telnet 192.168.3.240 10098

二、配置pycharm并连接docker容器

1.打开pycharm,open 需要调试的rasa的代码。

pycharm使用本地已有的docker环境 pycharm连接docker_docker_02


2.点击Tools–>Deployment–>Configuration

pycharm使用本地已有的docker环境 pycharm连接docker_pycharm_03


3 点击 + ,然后给连接取个名字,建议:IP:端口号,IP是需要连接的服务器,端口号是从容器映射出来的22端口号,10022:22,10022是服务器的端口,22是docker的端口。

pycharm使用本地已有的docker环境 pycharm连接docker_ide_04


pycharm使用本地已有的docker环境 pycharm连接docker_服务器_05


pycharm使用本地已有的docker环境 pycharm连接docker_服务器_06


路径映射:

pycharm使用本地已有的docker环境 pycharm连接docker_python_07


需要选择设置python编译器:

点击file–>settings

pycharm使用本地已有的docker环境 pycharm连接docker_docker_08


选择Project Interpreter—>add

pycharm使用本地已有的docker环境 pycharm连接docker_ide_09


pycharm使用本地已有的docker环境 pycharm连接docker_服务器_10


在点击Next

pycharm使用本地已有的docker环境 pycharm连接docker_服务器_11


设置好python解释器就可以run代码了

三 、rasa 调试

点击edit Configurations

pycharm使用本地已有的docker环境 pycharm连接docker_ide_12


点击【+】号,选择python

pycharm使用本地已有的docker环境 pycharm连接docker_pycharm_13


pycharm使用本地已有的docker环境 pycharm连接docker_ide_14


pycharm使用本地已有的docker环境 pycharm连接docker_服务器_15


查看服务器上的,还没启动起来rasa服务,flask服务

pycharm使用本地已有的docker环境 pycharm连接docker_python_16


打断点,开始debug

打开postman进行测试,IP端口都填服务器docker的

pycharm使用本地已有的docker环境 pycharm连接docker_docker_17


查看docker的进程,发现多了四个进程,之前以为进程运行在本机,其实服务照样运行在docker里边,只是用pycharm去打断点debug。

pycharm使用本地已有的docker环境 pycharm连接docker_ide_18