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, 如下图。

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

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

PS:这里的密码就是之前设置好的,这里的端口号是宿主机的。
第三步,配置SFTP中的mapping

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

2,配置远程编译器
打开Pycharm专业版中的File>Settings>Project, 如下图:

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

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

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

浙公网安备 33010602011771号