一、实现思路:

1 linux服务器中run一个docker容器

2 进入容器内 安装启动ssh服务

3 回到本地windows下的pycharm软件中配置 ,去连接远程容器

4 正确选择本地项目使用的python解释器

二、具体实现命令和细节

2.1 linux服务器中run一个docker容器

这里必须将22端口暴露出去,即容器要有映射关系-p <port>:22,目的是让容器可以被发现,run容器的命令每个项目情况不一样大家酌情修改自己的即可,我的是Linux服务器中 运行

docker run -itd -p 10001:22 -p 10002:5000 -v /data:/data --name "容器名称" 镜像名称:镜像版本

(这里的port 10001,即是为了后面让pycharm去连接用的,可以更改成其它的port)

2.2 进入容器内 安装启动ssh服务

2.2.1安装ssh服务用于连接

在linux服务器中进入容器,运行命令docker exec -it 容器名称 /bin/bash

修改容器密码,运行命令passwd

按提示输入两次密码成功后,(这里的密码后面连接配置会用到)

更新源,运行命令apt-get -y update

(此步如果提示bash: apt-get: command not found错误很有可能是要由于你使用的不是ubuntu系统,而是其它的比如centos系统等,要用yum安装,这个后面再讲)

在容器中安装server和client, 分别运行apt-get install openssh-server
运行apt-get install openssh-client

容器中修改ssh配置文件,运行cd /etc/ssh
运行vim /etc/ssh/sshd_config

在文件最后面添加PermitRootLogin yes

保存此配置文件后,启动ssh服务,运行/etc/init.d/ssh restart

启动ssh服务成功会提示[ OK ]

到此,在容器中需要的配置操作已完成了,按住CTRL+P+Q 退出容器后,去测试一下我们的容器是否可正常连接

2.2.2验证容器是否可正常连接

linux服务器中运行ssh root@127.0.0.1 -p 10001

按返回提示输入yes 和 容器密码即可 成功连接容器

2.3本地pycharm中进行配置

2.3.1连接上远程容器项目目录

本地pycharm新建一个项目打开

然后pycharm界面依次点击 顶部'TOOLS'-'Deplyment'-'configuration'-点'+'号-选'SFTP'-输入一个自己记得住的serve_name

接下来在此serve_name弹出的Deployment界面中:

        将顶部connnection的SSH configuration填入远程服务器的host、本文章2.1和2.2.1中的port和密码,配置好后点击test connection,提示success表示连接成功(如果test不成功则检查是不是host 、port等输的不正确,以及使用2.2.2方法验证容器本身是否是能够正常连接的)

        test成功后点击 Mappings(位置在上一步Connection右侧),将Deployment path选择为远程docker容器中的项目代码根目录,点击OK

配置好connnection和Mappings后,还是在pycharm界面中, 鼠标左键单击项目名程选中项目,依次点击 pycharm界面顶部'TOOLS'-'Deplyment'-Download from serve_name,此一部操作成功后将远程容器中的项目文件会下载到本地中。

2.3.2配置python解释器

待远程容器中的代码download到本地后,在pycharm界面依次点击 顶部File-settings-Python Interpreter

在弹出的python Interpreter界面中 ,找到右侧小齿轮图标 点击-ADD-SSH Interpreter-输入远程容器的host, port ,python解释器安装路径,点击OK;再将下方Path Mappings中的remote path选择为远程容器中的项目路径,点击OK,会发现容器中的package加载出来了。

至此, 需要配置的都已完成,找到启动文件run进行验证即可。