Pycharm远程连接服务器

一,环境要求二,配置流程--docker三,配置流程--PyCharm1,配置SFTP2,配置远程编译器四,参考资料

 

一,环境要求

  • PyCharm专业版

  • 服务器安装nvidia-docker

  • docker中安装ssh

二,配置流程--docker

1,服务器端创建容器

sudo nvidia-docker run -it -p [host_port]:[container_port](do not use 8888) --name:[container_name]  -v [host_path]:[container_path]  --restart always /bin/bash

特别注意,container_port一定要留一个22端口,其他端口可按照自行需要配置,因为SFTP默认使用22端口。

--restart 该选项一定要加。

--net选项不要加,会和-p冲突

-v中container_path不要使用/home目录,否则会导致容器异常。

例如:

docker run --name pytorch15_kevin_submit -p 8022:22 -v /home/kevin/data:/data  --restart always -it pytorch_cuda:ssh bash

2,配置SSH服务

接着我们在刚刚新建的容器里配置SSH服务,首先安装openssh-server:

apt update
apt install -y openssh-server

PS:这里注意,不仅仅是远程服务器上要安装ssh服务,同时远程服务器上的docker container也内也需要安装openssh-server。

然后建立一个配置文件夹并进行必要的配置:

mkdir /var/run/sshd
passwd
# 这里使用你自己想设置的用户名和密码,但是一定要记住!
sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

PS:新建的容器直接按照这个方法进行SSH设置,我之前用其他的配置,报各种错。

重启SSH激活配置:

service ssh restart

退出当前容器到宿主机上,测试刚刚新建docker容器中哪个端口转发到了服务器的22端口:

$ sudo docker port [your_container_name] 22
# 如果前面的配置生效了,你会看到如下输出
# 0.0.0.0:8022

最后测试能否用SSH连接到远程docker:

ssh root@[your_host_ip] -p 8022
# 密码是你前面自己设置的

到这里说明服务器的docker端已经完成配置。

三,配置流程--PyCharm

1,配置SFTP

在导航栏中 Tools>Depolyment>Configuration中添加配置SFTP, 如下图。

image-20200908142013903

添加配置SFTP,点击弹窗左上角的+号。选择SFTP,根据自己的实际情况进行配置。

image-20200908142106005

再点击上图中红色部分的...,进行配置

image-20200908142255733

PS:这里的密码就是之前设置好的,这里的端口号是宿主机的。

第三步,配置SFTP中的mapping

image-20200908142457628

这样本地目录就会和docker目录同步了,想要自动同步,还需在导航栏中 Tools>Depolyment>Configuration中勾中automatic upload。

image-20200908142654413

2,配置远程编译器

打开Pycharm专业版中的File>Settings>Project, 如下图:

image-20200908142836968

我这里是已经配置完成的页面,配置新的点击上图中的设置图标,然后再点击Add, 得到如下图在进行相应的配置:

image-20200908143139345

PS:建议每次新的项目都使用New server configuration,而不要用Existing(对于不同项目同一环境来说,不同环境就没有这个问题了),因为用存在的可能后续会导致相同环境冲突,Pycharm报错。

最后一步写入docker中python的路径就可以了,如下图:

image-20200908143638813

上图中红色部分Sync folders可以增加多个路径进行同步。

四,参考资料

posted @ 2020-10-10 20:33  oral_kevin  阅读(222)  评论(0)    收藏  举报