pycharm与ssh远程访问服务器码头工人

pycharm与ssh远程访问服务器docker?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

pycharm与ssh远程访问服务器docker

  背景:有些实验需要在服务器上完成,因此为了快速便利地在本地调试远程服务器上的代码,需要完成本地与远程服务器的直连。然而现阶段诸多服务器上安装有docker,通常需要在docker内完成调试代码,因此本文主要提供远程访问服务器docker的配置方法。

  需要工具及说明:

  • 一台远程服务器
  • pycharm:集成开发工具,在本地安装
  • ssh:远程访问工具,本地和远程服务器都要有
  • docker:容器,在远程服务器上

第一步:购置配置服务器(如果已有服务器跳过)
  可自行在阿里云或腾讯云等服务器提供商购买centos服务器,或使用公司或学校提供的服务器,但需要注意的是,如果公司或学校的服务器需要在VPN环境内访问,则需要提前连接VPN后再访问服务器。

第二步:安装docker(如果已有docker则跳过)

sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

详细可参考文末参考文献【2】

注:sudo命令是指使用最高权限root执行,如果当前账户是root则无需sudo命令。

第三步:拉取镜像

  镜像官方网站是 Docker Hub,在上面可以找到符合自己生产需要的镜像。我们以pytorch为例,拉取镜像:

sudo docker pull pytorch/pytorch

即可下载相关文件,可通过下面命令查看已经拉取的镜像:

sudo docker images

详细可参考文末参考文献【6】

第四步:创建容器

  获取镜像后,需要根据镜像实例化一个容器,此处实例化容器使用run命令:

ssudo docker run -p [自选端口号]:22 --gpus all -itd --name [自己起个名字] -v [宿主机(本地)的目录]:[自定义创建好的容器内的目录]/bin/bash

执行上面命令可以完成实例化一个容器,其中的相关参数有:

  • -p [自选端口号]:22:同时将该容器映射到对应的端口号,并与22号端口进行关联监听;
  • –gpus all:指定该实例化的容器内可使用所有宿主机包含的gpu;
  • -i:保持STDIN开启;
  • -t:分配一个伪终端;
  • -d:在后台运行
  • –name [自己起个名字]:为了避免记住冗长复杂的容器id,通常可为容器设置一个名称,注意不要与现有的名称相同;
  • -v [宿主机(本地)的目录]:[自定义创建好的容器内的目录]:为了让容器内的文件与宿主机保持同步,可执行该参数,注意自定义创建好的容器内目录必须是绝对路径。

  另外 -i-t-d 可同时写在一起,例如 -it-itd
  例如命令:

sudo docker run -p 8848:22 --gpus all -itd --name wjn -v/home/gm/wangjianing/docker:/wjn pytorch/pytorch/bin/bash

其表示实例化镜像pytorch/pytorch为一个容器,其占用宿主机端口号为8848,并与ssh端口22保持关联监听,可使用所有gpu,名称为“wjn”,宿主机的地址“/home/gm/wangjianing/docker”与容器内目录“/wjn”保持关联,使用/bin/bash作为命令脚本。

  创建完之后,可查看所有已经实例化的容器

sudo docker ps

第五步:开通端口

  如果端口有防火墙保护,则需要自行开通:

sudo/sbin/iptables -I INPUT -p tcp --dport 8848 -j ACCEPT

第六步:启动容器

  启动容器,以使得该容器处在运行状态:

sudo docker start [容器id或自己起的名字]

例如刚才创建好的容器编号为“5621fade441e”,名称为“wjn”,则可以执行:

sudo docker start 5621fade441e

sudo docker start wjn

启动后,可通过:

sudo docker ps -a

查看所有已启动并运行的容器,如图:

pycharm与ssh远程访问服务器docker

注:至此应该可以看到该容器的相关信息, 特别注意PORTS属性,需要有端口信息才能判断当前创建的容器是可以通过端口访问的,如果没有此信息,则无法完成远程访问容器,且目前无法直接修改已创建好的容器的端口,所以只能重新创建。

pycharm与ssh远程访问服务器码头工人