PyCharm连接远程服务器上Docker容器,使用远程服务器的python intercepter解释器和GPU资源 [本地调试深度学习代码]

pycharm远程连接服务器-docker容器 2.进入交互式后修改容器的root密码。-p 端口号:这里的端口就是我们在步骤1 启动容器时映射的主机端口号8080,不是容器的端口22。5.点击Tools -> Deployment -> Options 修改文件保存方式。这里需要映射主机端口到容器端口,后续就是通过端口来连通容器的。-p 8080:22:这里主机端口8080, 容器端口是22。看服务器中的python位置: >>which python。root:容器内部系统的root账号,不是服务器的用户账号。6. 选择远程解释器。 阅读详情

概述

在编写常规深度学习代码时,总是需要使用服务器上的GPU资源,所以一般要写完代码,放到服务器,然后使用GPU运行。但是由于之前的习惯,总想本地调试一下或者本地直接跑测试结果,再放到服务器去跑。

网上查了一些文档,遇到了一系列问题,最终还是完美的解决了。整理一下分享出来希望对大家有用。

文档包括三个方面:

  1. 服务器Docker启动,在Docker中使用GPU资源
  2. Docker开启ssh登录
  3. PyCharm连接远程服务器Docker,使用python解释器和远程GPU

1. Docker中使用GPU

我这里使用的镜像是 registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.3.0-py38-torch1.11.0-tf1.15.5-1.6.1
这个影响不大。
为什么要使用Docker呢,因为这样能保证开发环境的一致性。

启动命令:

docker run -p 2017:22 --name="gpu-test"  --gpus all -it -v /root/localpath:/workspace  registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.3.0-py38-torch1.11.0-tf1.15.5-1.6.1 bash

-p 2017:22 : 映射了一个宿主机的2017端口到容器的22端口,为了之后连接容器
-v /root/localpath:/workspace : 加了映射容器的磁盘到宿主机上

这样启动后,容器中就可以看到所有的GPU资源
容器中的nvidia-smi
可以验证下是否可以使用gpu

import torch
print(f'\nAvailable cuda = {torch.cuda.is_available()}')
print(f'\nGPUs availables = {torch.cuda.device_count()}')
print(f'\nCurrent device = {torch.cuda.current_device()}')
print(f'\nCurrent Device location = {torch.cuda.device(0)}')
print(f'\nName of the device = {torch.cuda.get_device_name(0)}')

在容器中检查GPU
这里需要注意宿主机是有GPU驱动的,容器中有cuda等环境。

到这个阶段,就可以在容器中跑程序了,如果没有本地调试需求,可以把代码传到宿主机目录,在容器中可以直接运行。如图:
容器上运行

2. 开启Docker中ssh

因为后续需要PyCharm连接Docker容器,所以容器中需要现有ssh服务,并把22端口暴露出去,我们是映射到宿主机上一个端口上。

docker run -p 2017:22

在我提供的这个镜像上没有ssh,需要手动安装一下,如果有ssh就不需要装了。
安装脚本:

# 更新密码
passwd

# 更新源
apt-get -y update

# 安装sshserver
apt-get install openssh-server
apt-get install openssh-client

# 开启密码登录
vim /etc/ssh/sshd_config
在文件最后加上一行
PermitRootLogin yes #允许root用户使用ssh登录

# 重启ssh服务
/etc/init.d/ssh restart


# 尝试连接远程容器
ssh root@10.22.33.44 -p 2017

3. PyCharm中连接Docker中的Python解释器和GPU

有两个地方需要配置,但是可以一步配置完成。
我使用的PyCharm 2023.2.1 (Professional Editor)版本

使用远程解释器的操作步骤:

  1. 创建Interpreter
    创建interpreter
    操作路径:Add New Interpreter --> On SSH

  2. 填写远程服务器上Docker容器连接信息
    填写容器连接信息
    这里弹框需要填入远程信息,这里的IP是远程宿主机,端口是容器暴露的2017端口,2017会映射到容器内部22端口上,就可以通过2017连接到容器22.

  3. 输入密码登录密码
    提示连接成功

  4. 设置解释器地址
    解释器配置
    这一步需要特别注意。
    第一Environment: 一定选择远程已存在的解释器,不要创建新的解释器。
    第二Interpreter : 解释器地址,选择远程容器中的解释器地址,具体位置可以在远程中查询,查询方式:
    进入python

import os
print(os.sys.executable)  # 会输出解释器地址

# 我使用的镜像的解释器位置,所以我在这一步设置的这个地址
/opt/conda/bin/python

第三sync folders : 是选择把本地文件同步到远程容器的什么目录。这儿可以选择一个容器的挂载目录,防止容器重启,远程文件丢失,还需要重传。
最后自动上传可以勾选上,修改后会自动上传。

创建完成后,可以在interpreter中查看,依赖是否跟远程相同。
在这里插入图片描述
如果显示的远程pip list中依赖,即成功。

然后执行Run试试。
在这里插入图片描述

在本地运行

参考链接:https://zhuanlan.zhihu.com/p/605389180

PyCharm连接Docker镜像搭建Python开发环境 文章目录一、Docker使用Centos镜像安装Openssh服务二、PyCharm连接Docker总结 Pycharm的工具是具有通过SSH协议远程访问一个环境作为开发环境的功能的。那么只要创建一个支持SSH远程访问的容器,那么就可以提供作为开发环境了。 需要做的基本步骤: 构建一个支持SSH服务的镜像 centos:7-ssh 构建基于支持SSH服务,支持执行python3环境的镜像 python_env 配置Pycharm的调试环境使用SSH连接上python_env 配置Pycharm自动同步项目 阅读详情

相关推荐

使用PyCharm与Docker容器进行开发:从入门到精通

在PyCharm中,你可以通过右键点击你的Python文件,然后选择"Debug",或者直接按Shift+F9来启动调试会话。当你的应用程序运行到你设置的断点时,它将会进入调试模式,你可以查看和修改变量的值,以及单步执行代码。在PyCharm中,进入"File"菜单,选择"Settings"。在PyCharm中,你可以通过右键点击项目根目录,选择"Docker" -> “Compose Up"来启动你的应用程序。如果你想停止你的应用程序,你可以在PyCharm中点击"Stop”,或者在命令行中运行。

weixin_71166183的博客 3762

docker篇---pycharm连接docker,使用docker环境

docker篇---pycharm连接docker,使用docker环境

心惠天意 9006

力扣(Leetcode)第1题:两数之和(C语言版本)

题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6

qq_39855356的博客 3309

pycharm专业版连接远程docker容器

在docker中配置好了代码的运行环境,执行which python查看pyhton编译器的路径,如下是我docker环境中的解释器路径,稍后会用到。通过pycharm连接远程docker是通过ssh服务,所以需要对容器的ssh端口做映射,ssh的默认端口是22。-p 端口号:这里的端口就是我们在步骤1 启动容器时映射的主机端口号9000,不是容器的端口22。5.配置好如上的所有步骤,就可以在Pychram中运行docker环境下的代码了。root:容器内部系统的root账号,不是服务器的用户账号。...

sinat_28916141的博客 5848

机器学习-02 模型的评估与选择

2.1 误差与过拟合 我们将学习器对样本的实际预测结果与样本的真实值之间的差异成为:误差(error)。定义: 在训练集上的误差称为训练误差(training error)或经验误差(empirical error)。 在测试集上的误差称为测试误差(test error)。 学习器在所有新样本上的误差称为泛化误差(generalization error)。 显然,我们希望得到的是在新样本上表现得很好的学习器,即泛化误差小的学习器。因此,我们应该让学习器尽可能地从训练集中学出普适性的“一般特征”,这

一个小白 1705

ComfyUI入门学习-教程篇

深入的 ComfyUI 教程,不同功能节点的详细指南。一个比较有意思的Comfyui教程,动画式学习。从安装到基础教程、高级教程再到各种工作流。非常全面,有教程有搭建好的工作流。

wincyfu的博客 1326

实现Pycharm与服务器的docker容器连接通信

Pycharm专业版和docker容器端的通信连接

weixin_44220689的博客 1056

Innovus实战:5分钟搞定postRoute阶段冗余hold buffer的自动清理(附PHC识别技巧)

本文分享了在数字IC后端设计中使用Innovus工具,于postRoute阶段自动清理冗余hold buffer的实战技巧。通过配置时序感知的面积回收模式,可在5分钟内安全移除非关键路径上的PHC缓冲器,有效优化芯片面积与功耗,并附有PHC识别与验证方法。

moon9的博客 400

【Pycharm教程】PyCharm 使用 Docker 配置 Python 解释器

PyCharm 与Docker的集成允许您在 Docker 容器中部署的各种配置的开发环境中运行您的应用程序。

m0_59162248的博客 3047

PMP--工件

合同是指对双方都有约束力的协议,强制卖方提供规定的产品、服务或结果,以及强制买方支付相应的费用。它还可能包括处于中间状态的特性,例如已设计但尚未构建的特性、质量保证中的特性或测试中的特性。RACI 矩阵是一种常见的方法,用于显示执行、担责、咨询或知情,且与项目活动、决策和可交付物有关的干系人。计划是提议的实现某种目标的方式。在项目开始前或开始时创建的文件,涉及与项目有关的战略、商业或高层级的信息。或 © 它们是用特定方法创建的结果,例如,虽然成本估算结果是一个重要工件,它们是用不同估算方法得出的结果。

stqer的博客 1666

军品研制过程-转阶段

介绍军品转阶段评审

Abel的博客 2万+

pycharm如何连接远程服务器的docker容器进行运行和调试代码(二)

pycharm如何连接远程服务器的docker容器有两种方法: 第一种:pycharm通过ssh连接已在运行中的docker容器 第二种:pycharm连接docker镜像,pycharm运行代码再自动创建容器 本文是第二种方法的教程,第一种请点击以上的链接 条件: (1)pycharm专业版,社区版没有这个功能 (2)安装好docekr服务的远程服务器,可以是ubuntu和CenterOS (3)docker服务器已经准备环境的docker镜像 一、远程服务器上配置docker远程服务 .

Thanours的博客 1万+

71、机器人与机器人控制器技术解析

本文深入解析了机器人控制器的通信接口、传感器数据采集与处理以及抓手技术三大核心技术。详细介绍了数字I/O、串行接口、总线系统和以太网等通信方式,探讨了各类传感器在焊接、装配、质量检测等场景中的应用,并阐述了手眼校准与路径校正的关键方法。同时,文章还分析了不同类型抓手的特点及选型设计原则,展示了机器人在现代工业自动化中的高效性与灵活性。通过实际编程示例与流程图,全面呈现了机器人系统的集成与控制逻辑。

gin88的博客 275

Pycharm和Docker

​ 由于上周操作系统重置了,之前安装得Python环境全部没有了。又不想去重新安装环境,由于目前有一台服务器,并且已经安装了了Docker服务,此服务器也只是挂载了一个博客,有大部分得空间是被闲置得。没有利用起来。所以决定在Docker中去部署一个Python得解释器。可以给我学习Python提供环境,同时在Docker上也可以很方便得切换Python得版本。

weixin_45501045的博客 1952

UNet 改进(19):与ASPP结合的图像分割模型

这个代码实现了一个改进版的UNet模型,在传统的UNet架构基础上,引入了ASPP模块来增强模型捕获多尺度上下文信息的能力。​​UNet主干网络​​:经典的编码器-解码器结构,带有跳跃连接​​ASPP模块​​:位于瓶颈层,用于提取多尺度特征。

2401_82355416的博客 878

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【Docker】Pycharm连接远程docker服务实现直接部署运行

PyCharm 是一款强大的 Python 集成开发环境(IDE),支持通过 Docker 容器运行代码,特别适合需要利用远程服务器资源的场景。远程 Docker 服务允许用户在远程服务器上运行容器化环境,PyCharm 可以通过 SSH 或 TCP 套接字连接到远程 Docker 守护进程,从而在容器内执行代码、调试或部署应用。

彬彬侠的博客 4957

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Pycharm中配置Docker

PyCharm 提供了内置支持 Docker 的功能,使得你可以轻松地在 Docker 容器中运行 Python 解释器、管理依赖项、调试代码和执行测试。

u013039977的博客 4277

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

通过pycharm登录远程服务器上的docker的完整过程

通过pycharm登录远程服务器上的docker的完整过程

yanling_2517的博客 1469

pycharm连接远程linux服务器上的docker进行深度学习训练

实进行深度学习时,由于GPU都在服务器上,编辑代码很麻烦。并且服务器上配置了docker的环境,所以用pycharm连接远程服务器的docker进行深度学习,这样在本地调用远程服务器的GPU和环境,更方便一点,将这个过程记录下来,希望对大家有所帮助。

weixin_44115575的博客 2378

pycharm连接docker容器

pycharm连接docker容器

weixin_41276347的博客 3452

pycharm中配置docker(有最难搞的vim指令合集)

注意:很多博客上写到可以使用 127.0.0.1:8022 连接本地docker,在我的电脑上似乎不适用,你可以两种方法都尝试一下。若想要使用pycharm连接docker容器,容器端口号必须指定为22,因为SFTP默认使用22端口。我这里选择的是163源,因为其他的源我都用不了,这个可以根据自己的需求修改。当我们退出容器时,容器会停止(可以看到容器的状态为exited)。这个命令也可以进入容器,但是当我们退出容器时,容器不会停止。如果不成功,请更换源。:在当前行的下一行插入新的一行,并进入插入模式。

qq_62374932的博客 1317

【详细教程】pycharm使用docker容器开发

【详细教程】pycharm使用docker容器开发

lhyhaiyan的博客 2万+

pycham连接docker

本文详细介绍了如何配置PyCharm专业版连接远程Docker容器进行开发部署。主要内容包括:1)Linux宿主机SSH服务配置;2)创建并运行Docker开发容器;3)容器内SSH服务安装与配置;4)PyCharm通过SSH连接容器并配置远程Python解释器。教程提供了完整的命令流程和配置方法,帮助开发者实现远程Docker环境下的项目开发与部署。

fluency_11的博客 1153

Pycharm远程连接Linux服务器上的Docker项目进行开发调试-详细教程

保姆级从0-1展示如何用Pycharm连接Docker容器内的项目

blackome的博客 4157
上一篇: linux sed命令:sed替换命令使用环境变量,且环境变量中有文件分隔符时,sed命令不work (unknown option to s)
line_aijava
博客等级 码龄16年 31粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值