pycharm与ssh远程访问服务器docker的详细教程

pycharm与ssh远程访问服务器docker的详细教程,第1张

pycharm与ssh远程访问服务器docker的详细教程

本文主要介绍pycharm和ssh远程访问服务器docker。这篇文章给你做了非常详细的介绍,对你的学习或者工作有一定的参考价值。有需要的朋友可以参考一下。

背景:有些实验需要在服务器上完成,所以为了在本地快速方便地调试远程服务器上的代码,需要完成本地服务器与远程服务器的直连。但是目前很多服务器上都安装了docker,调试代码通常需要在docker中完成,所以本文主要提供远程访问服务器docker的配置方法。

所需工具和说明:

  • 远程服务器
  • Pycharm:集成开发工具,安装在本地
  • Ssh:远程访问工具,本地和远程服务器都需要。
  • 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

    执行上面的命令实例化一个容器,相关的参数有:

  • -p[可选端口号]:22:同时将容器映射到对应的端口号,与端口22进行关联监控;
  • –GPUsall:指定所有gpu可以在此实例化的容器中使用;
  • -i:保持STDIN打开;
  • -t:分配一个伪终端;
  • -d:在后台运行
  • –-name【自己命名】:为了避免记住冗长复杂的容器id,通常可以为容器设置一个名称,注意不要与已有的名称相同;
  • -v[主机的目录(本地)]:[容器中自定义创建的目录]:可以执行该参数,以保持容器中的文件与主机同步。请注意,容器中自定义创建的目录必须是绝对路径。
  • 另外,-i-t,和-d可以同时写在一起,比如-it-。
    例如,命令:

    sudodockerrun-p8848:22--gpusall-itd--namewjn-v/home/gm/wangjianing/docker:/wjnpytorch/pytorch/bin/bash

    表示实例化镜像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/bash

    2,容器配置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/etc/ssh/sshd_config

    如果没有安装vim,请执行:

    aptinstallvim

    打开后修改文件:
    #删除地址族前面的any
    修改#删除PermitRootLogin前面的yes
    修改#删除PasswordAuthentication前面的yes

    在vim编辑器中,执行命令保存并退出:

    :wq

    最后,重新启动ssh服务:

    servicesshrestart

    详见参考文献[1]和[3]。

    3。ssh测试

    配置完了,按理说应该设置服务器了。这里可以做一个简单的测试,比如
    (1)在主机中执行命令检查当前端口,可以知道有8848个端口。

    sudonetstat-ntlp

    (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[您自己定义的端口号]

    如果显示输入密码,则连接成功,输入密码后可以直接进入相应的容器。例如,博客作者执行:

    [email protected]

    以下信息表明连接已经成功。

    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的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://www.outofmemory.cn/zz/774274.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存