一、实现思路:
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进行验证即可。