目录

目录

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

 二、配置pycharm并连接docker容器

1.配置SFTP连接

2. 上传本地代码数据到docker容器中并运行

 3.设置python编译器:

三、可能遇到的一些问题:

1.pycharm连接docker容易时,在重启容器之后提示连接不上,进入容器,输入以下命令:

2.报错:kex_exchange_identification: read: Connection reset by peer

3.如果提示:ERROR:systemctl:the ExecStartPre control process exited with error code

就输入以下代码:

4.使用xftp连接虚拟机时报错:


环境准备:

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

(2)远程服务器ubuntu20.04,已安装好docker

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

1.启动并运行交互式容器:

docker run --gpus all --name="xiao-pycharm" -it -p 11740:22 -v /sda1/xiao/pycharm:/home python3.8_torch1.8.2:1.0 /bin/bash

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

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

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

passwd

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

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

如果安装时出现报错:

pycharm docker pycharm docker tool_服务器

1)可以先更新源:

apt-get -y update

2) 再卸载原有的openssh-server和openssh-client:

sudo apt-get autoremove openssh-client openssh-server

 4. 修改SSH配置文件以下选项

vim /etc/ssh/sshd_config

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

PermitRootLogin yes #允许root用户使用ssh登录
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1

5. 重启ssh服务

/etc/init.d/ssh restart

6. 退出容器,连接测试

注意:以上2-5步骤都是在容器内部操作的。

ssh root@127.0.0.1 -p 11740

root:容器内部系统的root账号,不是服务器的用户账号

127.0.0.1:服务器本机ip

-p 端口号:这里的端口就是我们在步骤1 启动容器时映射的主机端口号11740,不是容器的端口22

 

pycharm docker pycharm docker tool_pycharm docker_02

这样就测试连接成功了,接下来就是到我们本机windows系统的pycharm连接docker容器了。

 二、配置pycharm并连接docker容器

1.配置SFTP连接

pycharm docker pycharm docker tool_服务器_03

 

pycharm docker pycharm docker tool_重启_04

点击SFTP之后输入连接名称,这里写的名称是“test”

pycharm docker pycharm docker tool_pycharm_05

pycharm docker pycharm docker tool_pycharm_06

在host里填写服务器的ip地址,Port填写前面开放的端口:

pycharm docker pycharm docker tool_重启_07

 然后设置本地和远程服务器的樱色路径,这里的Local path表示本地的文件路径,Deployment path表示服务器的路径,这里将本地的文件映射到了/home目录下:

pycharm docker pycharm docker tool_pycharm docker_08

2. 上传本地代码数据到docker容器中并运行

然后就可以将本地的代码和资源文件Upload到服务器里的容器里,同时这里有一个Sync功能,可以自动检查服务器容器和本地文件资源的区别,及时同步:

pycharm docker pycharm docker tool_docker_09

 3.设置python编译器:

 

pycharm docker pycharm docker tool_docker_10

 

pycharm docker pycharm docker tool_docker_11

 

pycharm docker pycharm docker tool_pycharm docker_12

 

pycharm docker pycharm docker tool_pycharm_13

pycharm docker pycharm docker tool_重启_14

 设置好之后,远程python解释器就可以run代码了

三、可能遇到的一些问题:

1.pycharm连接docker容易时,在重启容器之后提示连接不上,进入容器,输入以下命令:

/etc/init.d/ssh restart

2.报错:kex_exchange_identification: read: Connection reset by peer

1、使用VNC的方式登录云服务器
2、操作命令 vi /etc/hosts.allow
3、按i进入编辑模式,最后添加sshd: ALL #就是允许所有ip主机均能连接本机
4、Esc退出编辑模式,:wq退出保存
5、重启sshd服务 systemctl restart sshd

3.如果提示:ERROR:systemctl:the ExecStartPre control process exited with error code

就输入以下代码:

rm -rf /var/run/sshd/
service ssh restart

4.使用xftp连接虚拟机时报错:

pycharm docker pycharm docker tool_重启_15


检查sshd服务是正常开启的,防火墙也没阻止

网上发现是新版的sshd可能与xftp存在兼容性问题

解决方法:在/etc/ssh/sshd_config最后增加以下一行

KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1

然后重启sshd服务或者重载服务配置文件

systemctl reload sshd

重新使用Xftp连接,成功!