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

pycharm与ssh远程访问服务器docker

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

  需要工具及说明:

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


1、配置远程服务器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

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

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

第七步:进入容器

  进入容器可使用命令:

sudo docker exec -it [容器id或自己起的名字] /bin/bash

2、容器配置ssh

  博主之前以为创建好docker之后,就可以直接通过ssh访问该容器了,但是后来发现还需要进入容器内进行一系列的ssh配置,主要步骤如下:

第八步:安装ssh

进入刚创建好的容器,先执行如下命令:

apt update
apt install -y openssh-server

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

mkdir /var/run/sshd
echo ‘root:passwd' | chpasswd

注意,这里的root表示待会要远程访问的用户名,passwd为访问密码,可自行设置,例如本人设置的为:

echo ‘root:123456' | chpasswd

第九步:设置登录权限

执行下面三行命令设置权限

sed -i ‘s/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed ‘s@session\srequired\spam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
echo “export VISIBLE=now” >> /etc/profile

第十步:修改ssh配置文件

博主完成第二步后,依然无法远程连接,因此经过查询后发现,需要修改相关配置文件:
执行下面命令打开ssh配置文件:

vim /etc/ssh/sshd_config

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

apt install vim

打开后,修改文件:
AddressFamily any 前面的 # 删除
修改PermitRootLogin yes 前面的 # 删除
修改PasswordAuthentication yes 前面的 # 删除

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

:wq

最后重启ssh服务:

service ssh restart

详细可参考参考文献【1】和【3】

3、ssh测试

配置完后,按理来说应该完成了服务器的设置,下面可以进行简单的测试,例如
(1)在宿主机中执行命令查看当前端口,可知有8848端口

sudo netstat -ntlp

(2)在宿主机上执行命令,也可以查看当前容器是否存在对应的端口映射关系:

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

例如,博主执行后返回0.0.0.0:8848,说明成功

(3)进入容器内,执行:

python3

进入python环境,再依次执行

import torch
print(torch.cuda.is_available())

如果返回 True,说明该docker可以使用GPU了。

(4)远程访问试一试,任意在一台联网的机器上(若在局域网内,则需要连VPN)执行:

ssh [第八步创建的用户名]@[你的服务器地址] -p [自己定义的端口号]

如果显示输入密码,说明连接成功,输入密码后即可直接进入对应的容器。例如博主执行:

ssh root@10.11.6.13 -p 8848

显示如下信息说明已经连接成功。

4、pycharm测试

如果使用pycharm直接访问远程服务器docker,则可以在pycharm上进行相关设置:

第十一步:安装pycharm(已安装直接跳过)

需要安装专业版的pycharm,安装后,可通过激活码、或直接去官网使用学生邮箱注册一个账号可免费使用一年,安装后进入pycharm

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

第十二步:设置ssh

如下图,依次点击后进入菜单:

然后新增一个连接,由左向右依次点击:

进入编辑ssh界面,填写配置信息:

点击“Test Connection”测试一下,如果success则说明pycharm也可以连接远程容器了:

返回到上一个页面,选择配置好的ssh后,可以再选择需要pycharm关联到容器内的具体的目录。例如博主直接选择在创建容器时域宿主机进行关联的目录/wjn作为pycharm可更新上传的位置,最后保存即可。

至此完成所有配置工作,在pycharm可以自由地与服务器docker内的项目进行调试了



参考文献:

【1】SSH客户端远程登陆Linux服务器密码总是错误问题
【2】Docker安装
【3】PyCharm+Docker:打造最舒适的深度学习炼丹炉
【4】pycharm远程连接服务器运行代码加调试
【5】解决pytorch GPU 计算过程中出现内存耗尽的问题
【6】Docker 镜像使用
【7】学生如何免费使用Pycharm专业版全部功能

到此这篇关于pycharm与ssh远程访问服务器docker的详细教程的文章就介绍到这了,更多相关pycharm远程访问docker内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python使用PyCharm进行远程开发和调试

    背景描述 有时候Python应用的代码在本地开发环境运行十分正常,但是放到线上以后却出现了莫名其妙的异常,经过再三排查以后还是找不到问题原因,于是就在想,要是可以在服务器环境中进行单步跟踪调试就好了. 然而,在服务器系统上安装一个IDE肯定是不现实的:通过SSH远程到服务器端,采用pdb进行调试虽然可行,但是操作还是较为繁琐,而且也不够直观. 那么,是否可以将开发环境中的IDE与服务器环境相连,实现利用开发环境的IDE调试服务器环境中运行的程序呢? 答案是肯定的,这就是远程调试(Remote D

  • Pycharm中配置远程Docker运行环境的教程图解

    捣鼓了一天一直报错:Error running 'mypython': Can't run remote python interpreter: the working directory 'C:\Users\admin\Desktop\dc' is invalid, it needs to be an absolute path 首先咱们得搞清楚,pycharm连接docker的原理 Step 1: 打开pycharm连接docker ,记得打开远程2375端口 Step 2:连接远程dock

  • pycharm远程linux开发和调试代码的方法

    pycharm是一个非常强大的python开发工具,现在很多代码最终在线上跑的环境都是linux,而开发环境可能还是windows下开发,这就需要经常在linux上进行调试,或者在linux对代码进行编写,而pycharm提供了非常便捷的方式.具体实现在windows上远程linux开发和调试的代码步骤如下: 配置远程linux主机信息 选择Tools--Deployment--Configuration 这里选择SFTP就可以 这里添加SFTP主机信息然后可以天机测试连接,输入用户名和密码  

  • PyCharm使用Docker镜像搭建Python开发环境

    在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装.本文将介绍如何利用PyCharm来连接Docker镜像,从而搭建Python开发环境. 首先,我们需要准备一下工具: PyCharm专业版 Docker 我们用一个示例项目来演示在PyCharm中如何利用Docker镜像搭建Python开发环境.项目的截图如下: 注意到,在该项目中还没有设置Pytho

  • PyCharm设置SSH远程调试的方法

    一.环境 系统环境:windows10 64位 软件:PyCharm2017.3 本地Python环境:Python2.7 二.配置 2.1配置远程调试 第一步:运行PyCharm,然后点击设置如下图 第二步:添加远程的调试环境(选择SSH远程) 然后进入下面界面添加: 第三步:配置本地到远程主机的同步 然后进入下面页面具体配置同步信息,配置完成以后点击OK即可: 2.2配置编码(解决远程start ssh session乱码问题) 第一步: ----> File --> settings -

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

    pycharm与ssh远程访问服务器docker   背景:有些实验需要在服务器上完成,因此为了快速便利地在本地调试远程服务器上的代码,需要完成本地与远程服务器的直连.然而现阶段诸多服务器上安装有docker,通常需要在docker内完成调试代码,因此本文主要提供远程访问服务器docker的配置方法.   需要工具及说明: 一台远程服务器 pycharm:集成开发工具,在本地安装 ssh:远程访问工具,本地和远程服务器都要有 docker:容器,在远程服务器上 1.配置远程服务器docker 第

  • pycharm 激活码及使用方式的详细教程

    上个月安装的pycharm,由于当时急需要使用,就直接使用的pycharm试用版,没成想,今天早上一打开,直接给我来了个下马威,不能进入了,这是准备继承我之前的项目吗?笑话,作为一个技术人员怎能向尔等屈服,果断哗啦了一个教程过来使用,下面分享大家: 1.授权服务器激活 优点:方便快捷 缺点:激活的人数多了就容易被封杀,所以可能经常需要去激活 选择License server激活,然后填入: idea.qmanga.com或http://xidea.online,然后点Activate激活即可 如

  • CentOS 8安装Docker的详细教程

    1.御载以前的版本 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate dokcer-logrotate docker-engin 御载docker-ce(ce代表社区版) yum remove docker-ce docker-ce-cli containerd.io 删除docker资源 rm -rf /var/lib/docker 2

  • PyCharm汉化安装及永久激活详细教程(靠谱)

    PyCharm 官方下载地址:http://www.jetbrains.com/pycharm/download 进入该网站后,我们会看到如下界面: professional 表示专业版付费,community 是社区版.免费破解当然是使用专业版的. 下载后,打开安装包,点Next,进入到下图,全部打勾. Create Desktop Shortcut创建桌面快捷方式,按电脑是32位还是64位的系统 .勾选Create Associations是否关联文件,选择以后打开.py文件就会用PyCha

  • Pycharm 2020.1 版配置优化的详细教程

    手残更新Pycharm 2020.1 版时将配置文件都删除了

  • 教你Pycharm安装使用requests第三方库的详细教程

    request库是python的第三方库,它也是目前公认的爬取网页最好的第三方库,其特点是:简单.简洁,甚至用一行代码就能从网页上获取相关资源. 安装python: 首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载. 安装pycharm: 首先从网站下载pycharm:点击打开链接(链接为:http://www.jetbrains.com/pycharm/download/#secti

  • Tomcat服务器入门超详细教程

    目录 一,Tomcat的一些概念 –1,服务器 –2,web服务器 –3,Tomcat服务器 二,使用Tomcat –1,下载安装 –2,启动&关闭 –3,测试 三,Tomcat目录结构 –1,核心目录 –2,修改默认端口号8080 四,访问自己的项目资源 –1,在webapps中添加自己简单的项目 –2,测试 –3,一个完整的web应用结构 五,在IDEA中整合Tomcat –1,操作如下图 –2,测试 一,Tomcat的一些概念 –1,服务器 服务器:分为服务器硬件和服务器软件.在硬件服务器

  • CentOS 8.4安装Docker的详细教程

    目录 前言: 系统要求: 安装环境: 卸载旧版本: yum到底是干什么的? 使用yum安装: 配置yum稳定镜像源: 安装 Docker CentOS8 额外设置 开启Docker服务: 启动 Docker 守护进程: 手动启动 在系统启动时自动启动 Docker基础命令: 测试 Docker 是否安装正确 Docker学习系列文章 参考文章: 前言: Docker 是一个用于开发.传送和运行应用程序的开放平台.Docker 使您能够将应用程序与基础设施分开,以便您可以快速交付软件.使用 Doc

  • selenium+chromedriver在服务器运行的详细教程

    1.前言 想使用selenium从网站上抓数据,但有时候使用phantomjs会出错.chrome现在也有无界面运行模式了,以后就可以不用phantomjs了. 但在服务器安装chrome时出现了一些错误,这里总结一下整个安装过程 2.ubuntu上安装chrome # Install Google Chrome # https://askubuntu.com/questions/79280/how-to-install-chrome-browser-properly-via-command-l

  • Pycharm安装Qt Design快捷工具的详细教程

    在使用Python开发Gui程序可以使用Qt Design工具进行界面设计,下面记录在Pycharm中设置Qt Design快捷工具和如何把Qt Design中图形化的ui界面文件转化成py文件 先记录好需要填写的内容 1.Qt_Designer 快捷工具名称 2.(填写Qt安装的路径 designer.exe) 3.$ProjectFileDir$ 1.PyUIC 快捷工具名称 2.python的安装目录 3.-m PyQt5.uic.pyuic $FileName$ -o $FileName

随机推荐