本文主要介绍pycharm和ssh远程访问服务器docker。这篇文章给你做了非常详细的介绍,对你的学习或者工作有一定的参考价值。有需要的朋友可以参考一下。
背景:有些实验需要在服务器上完成,所以为了在本地快速方便地调试远程服务器上的代码,需要完成本地服务器与远程服务器的直连。但是目前很多服务器上都安装了docker,调试代码通常需要在docker中完成,所以本文主要提供远程访问服务器docker的配置方法。
所需工具和说明:
1。配置远程服务器docker
第一步:购买配置服务器(如果现有服务器跳过)
可以自行从阿里云或腾讯云等服务器提供商处购买centos服务器,也可以使用公司或学校提供的服务器。但是需要注意的是,如果需要在VPN环境下访问公司或者学校的服务器,那么在访问服务器之前,需要提前连接VPN。
第二步:安装docker(如果已经有docker就跳过)
sudocurl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun详见文末参考文献[2]。
注意:sudo命令指的是具有最高特权根的执行。如果当前帐户是root,则不需要sudo命令。
第三步:拉镜子
镜子的官网是DockerHub,在这里你可以找到符合自己制作需求的镜子。我们以pytorch为例来拉镜:
sudodockerpullpytorch/pytorch您可以下载相关文件,并通过以下命令查看提取的图像:
sudodockerimages详见文末参考文献[6]。
步骤4:创建一个容器
获得图像后,需要根据图像实例化一个容器。这里,run命令用于实例化容器:
ssudodockerrun-p[自选端口号]:22--gpusall-itd--name[自己起个名字]-v[宿主机(本地)的目录]:[自定义创建好的容器内的目录]/bin/bash执行上面的命令实例化一个容器,相关的参数有:
另外,-i,-t,和-d可以同时写在一起,比如-it-。
例如,命令:
表示实例化镜像pytorch/pytorch是一个容器,占用主机8848的端口号,与ssh端口22保持关联,可以使用所有名称为“wjn”的GPU。主机“/home/GM/王佳宁/docker”的地址与容器中的目录“/wjn”保持关联,并使用/bin/bash作为
创建之后,您可以查看所有实例化的容器。
sudodockerps第五步:打开端口
如果端口受防火墙保护,它需要自己打开:
sudo/sbin/iptables-IINPUT-ptcp--dport8848-jACCEPT步骤6:启动容器
启动容器,使其运行:
sudodockerstart[容器id或自己起的名字]例如,如果刚刚创建的容器编号是“5621fade441e”,名称是“wjn”,您可以执行:
sudodockerstart5621fade441e或者
sudodockerstartwjn启动后,您可以使用:
sudodockerps-a检查所有已启动和正在运行的容器,如图所示:
注意:此时,您应该可以看到容器的相关信息。请特别注意端口属性。您需要端口信息来判断当前创建的容器是否可以通过端口访问。没有这些信息,您就无法完成对容器的远程访问。目前不能直接修改已创建容器的端口,只能重新创建。
第七步:输入容器
命令可用于输入容器:
sudodockerexec-it[容器id或自己起的名字]/bin/bash2,容器配置ssh
Blogger以为创建docker后,可以直接通过ssh访问容器,但后来发现还是需要进入容器进行一系列ssh配置。主要步骤如下:
第8步:安装ssh:
要进入新创建的容器,首先执行以下命令:
aptupdate aptinstall-yopenssh-server然后创建一个配置文件夹,并进行必要的配置:
mkdir/var/run/sshd echo‘root:passwd'|chpasswd注意这里的root代表要远程访问的用户名,passwd是访问密码,可以自己设置,比如我设置为:
echo‘root:123456'|chpasswd第九步:设置登录权限:
执行以下三行命令来设置权限
sed-i‘s/PermitRootLoginprohibit-password/PermitRootLoginyes/'/etc/ssh/sshd_config sed‘s@session\srequired\spam_loginuid.so@sessionoptionalpam_loginuid.so@g'-i/etc/pam.d/sshd echo“exportVISIBLE=now”>>/etc/profile步骤10:修改ssh配置文件
完成第二步后,博主仍然无法远程连接,于是查询后发现需要修改相关配置文件:
执行以下命令打开ssh配置文件:
如果没有安装vim,请执行:
aptinstallvim打开后修改文件:
#删除地址族前面的any
修改#删除PermitRootLogin前面的yes
修改#删除PasswordAuthentication前面的yes
在vim编辑器中,执行命令保存并退出:
:wq
最后,重新启动ssh服务:
servicesshrestart详见参考文献[1]和[3]。
3。ssh测试
配置完了,按理说应该设置服务器了。这里可以做一个简单的测试,比如
(1)在主机中执行命令检查当前端口,可以知道有8848个端口。
(2)在主机上执行该命令,还可以检查当前容器中是否存在对应的端口映射关系:
sudodockerport[容器id或自己起的名字]22比如博主执行后返回0.0.0:8848,表示成功。
(3)进入容器并执行:
python3
进入python环境,然后依次执行。
importtorch print(torch.cuda.is_available())如果返回True,则意味着docker可以使用GPU。
(4)尝试远程访问,在任何联网的机器上执行(如果是局域网,需要连接VPN):
ssh[第8步创建的用户名]@[您的服务器地址]-p[您自己定义的端口号]
如果显示输入密码,则连接成功,输入密码后可以直接进入相应的容器。例如,博客作者执行:
sshroot@10.11.6.13-p8848以下信息表明连接已经成功。
4.皮查姆试验
如果使用pycharm直接访问远程服务器docker,可以在pycharm上进行相关设置:
第十一步:安装pycharm(如果安装了,直接跳过)
你需要安装专业版的pycharm。安装后可以用激活码注册账号或者直接去官网使用学生邮箱,可以免费使用一年。安装后就可以进入pycharm了。
详见文末参考文献[7]。
步骤12:设置ssh
如下图所示,依次点击进入菜单:
然后添加一个新连接,并从左向右单击:
进入编辑ssh界面,填写配置信息:
点击“TestConnection”进行测试,如果成功,pycharm也可以连接到远程容器:
回到上一页,选择已配置的ssh,然后选择pycharm需要在容器中关联的特定目录。比如博主直接在容器创建时域选择与主机关联的目录/wjn作为pycharm可以更新上传的位置,最后保存。
至此,所有的配置工作都已经完成,pycharm可以自由的用服务器docker中的项目进行调试了。
参考资料:
[1]SSH客户端远程登录Linux服务器的密码总是错误
[2]Docker安装
[3]PyCharm+Docker:打造最舒适的深度学习炼金炉
[4]PyCharm远程连接服务器[5]解决pytorchGPU计算中的内存耗尽问题
[6]Docker镜像使用
[7]如何
这篇关于pycharm和ssh远程访问服务器docker的详细教程到此为止。有关pycharm远程访问docker的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)