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

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

目录

一、创建映射端口的docker容器

二、配置ssh

三、在pycharm中配置环境

一、创建映射端口的docker容器

首先查看已有的镜像(我自己制作了一个,所以用grep过滤一下)

docker images | grep ds

我选择ds-pytorch作为创建容器的镜像,接下来看看目前所有的相关容器。

docker ps -a | grep ds

开始创建容器

docker run -it --name ds-test -p 8028:22 --gpus all -v /home/huangds/project:/project ds-pytorch:1.0 /bin/bash

这条命令用于启动一个新的 Docker 容器,并设置了多个选项。以下是详细的解释:

  • docker run:这是启动一个新容器的基本命令。

  • -it

    • -i:让容器分配一个伪TTY,并保持 STDIN 打开。这意味着你可以与容器内的进程进行交互。
    • -t:让容器分配一个伪TTY。通常 -i 和 -t 一起使用,以获得交互式 shell 体验。
  • --name ds-test:这个选项指定了容器的名称为 ds-test

  • -p 8028:22:这个选项用来发布(publish)容器的端口到宿主机上。这里的意思是从容器的端口 22 映射到宿主机的端口 8028。端口 22 通常是 SSH 服务使用的端口,这是为了允许从宿主机访问容器中的 SSH 服务。

  • --gpus all:这个选项指定了容器可以访问所有可用的 GPU 资源。

  • -v /home/huangds/project:/project:这个选项用来挂载宿主机的一个目录到容器中。具体来说,它把宿主机上的 /home/huangds/project 目录挂载到容器内的 /project 目录。这使得容器可以访问宿主机上的数据,可以数据共享和持久化存储。(容器会自动创建/project路径,从图中框起来的路径就可以看出

  • ds-pytorch:1.0:这部分指定了基础镜像的名字及其标签(tag)。这里的 ds-pytorch 是镜像的名字,而 1.0 是标签。标签用于区分同一个镜像的不同版本。自己的制作的镜像如果没有指定标签,会显示找不到报错

  • /bin/bash:这部分指定了容器启动后执行的第一个命令。在这里,容器启动后会进入一个交互式的 bash shell,允许用户与容器内的环境进行交互。

二、配置ssh

容器中:

更新apt

apt update

下载openssh-server

apt install -y openssh-server

下载安装过程中会出现需要填写的部分,如下图填写亚洲(6)和上海(70)就行。

此时安装完成,需要进行一些配置

mkdir /var/run/sshd
echo 'root:passwd' | chpasswd  # 这里使用你自己想设置的用户名和密码,但是一定要记住!
sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
echo "export VISIBLE=now" >> /etc/profile

然后重启ssh服务

service ssh restart

  1. mkdir /var/run/sshd: 创建一个名为 /var/run/sshd 的目录,这是 OpenSSH 服务所需的目录,用于存放一些临时文件。

  2. echo 'root:123456' | chpasswd: 修改 root 用户的密码为 123456。注意,这是一个非常弱的密码,强烈建议使用更安全的密码。

  3. sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config: 编辑 /etc/ssh/sshd_config 配置文件,将 PermitRootLogin prohibit-password 改为 PermitRootLogin yes,允许 root 用户通过 SSH 登录。

  4. sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd: 编辑 /etc/pam.d/sshd 文件,将 pam_loginuid.so 从 required 改为 optional。这一步是为了允许非交互式 SSH 会话,如通过 SSH 导出文件等操作。

  5. echo 'export VISIBLE=now' > /etc/profile: 添加环境变量 VISIBLE=now/etc/profile 文件。这一步似乎有些奇怪,因为 VISIBLE 变量并不是标准的 Linux 环境变量。可能是某种自定义的需求,具体作用取决于上下文。

  6. service ssh restart: 重启 SSH 服务,让上述改动生效。

宿主机上(不是服务器的docker里):
测试新建docker容器中哪个端口转发到了服务器的22端口

docker port [your_container_name] 22

可以看到是8028,跟之前创建容器时的对应上了。

ssh root@[your_host_ip] -p 8028

ssh测试连接时有时候会报错,所以在容器中查看一下ssh的配置文件

vim /etc/ssh/sshd_config

将PermitRootLogin的值从prohibit-password改为yes,X11UseLocalhost设置为no。

之后重新在服务器中ssh连接一下,输入密码就没问题了。

ssh root@[your_host_ip] -p 8028

三、在pycharm中配置环境

选择文件file–>setting设置—>找到python解析器



出现上图就说明pycharm中的ssh连通了。

要选择系统编译器,然后选择自己的python在哪个目录下,不知道的可以在容器里输入

which python


我的python文件在/opt/conda/bin/python,所以修改如下:

"Sync folders" 显示为 <Project root> -> /dasheng,这意味着 PyCharm 将把本地项目根目录与远程服务器上的 /dasheng 目录进行同步。

出现红色方框中的选项就说明没问题了,接下来就可以在pycharm中调用服务器里GPU进行训练了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143266.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

高效开发,从暗藏玄机的文件系统开始—合宙Air201资产定位模组LuatOS

超低功耗、精准定位、快速量产——迷你小巧的合宙Air201&#xff0c;正给越来越多的行业客户带来高效开发体验。 4G-Cat.1模组的文件系统关乎数据传输速度、存储效率&#xff0c;以及数据安全性等等诸多因素&#xff0c;在应用开发中极为重要。 本期&#xff0c;我们来学习合…

QT 带箭头的控件QPolygon

由于对当前项目需要绘制一个箭头控件&#xff0c;所以使用了QPainter和QPolygon来进行绘制&#xff0c;原理就是计算填充&#xff0c;下面贴出代码和效果图 这里简单介绍下QPolygon QPolygon是继承自 QVector<QPoint>那么可以很简单的理解为&#xff0c;他就是一个点的…

比特币10年价格数据(2014-2024)分析(进阶2_时间序列分析)

数据入口&#xff1a;【每周挑战】比特币10年价格数据可视化和量化分析 - Heywhale.com 本数据集包含 2014 - 2024 的比特币美元价格数据&#xff0c;具体包含比特币每日的开盘价、最高价、最低价、收盘价以及成交量等关键信息。数据说明如下&#xff1a; 字段说明Date日期&a…

MES管理系统在智能制造中的重要应用

在智能制造的浪潮席卷之下&#xff0c;MES管理系统犹如一位精通生产艺术的智者&#xff0c;以其独到的洞察力和卓越的能力&#xff0c;引领着制造业向更加智能化、高效化的未来迈进。它不仅仅是一个数据汇聚的容器&#xff0c;更是信息处理的引擎、决策制定的伙伴&#xff0c;以…

游戏开发引擎__游戏场景(灯光,摄像机)

1.灯光 重要参数介绍 类型: 控制灯光的类型&#xff0c;有“定向”“点”“区域”和“聚光”4种模式。颜色: 控制灯光的颜色。模式: 控制灯光的光照模式&#xff0c;有“实时”“混合”和“烘焙”3种模式。强度: 控制灯光的明亮程度。间接乘数: 改变间接光的强度。阴影类型: …

亚信电子于IAS 2024展出最新IO-Link主站设备软件协议栈解决方案

亚信电子即将于IAS 2024展示最新的亚信IO-Link主站/设备软件协议栈、集成亚信IO-Link主站软件协议栈的AX58400 EtherCAT转IO-Link网关&#xff0c;以及AXM57104A TSN PCIe千兆以太网卡解决方案。 [台湾新竹讯, 2024年9月18日] 亚信电子&#xff08;ASIX Electronics Corporat…

Golang | Leetcode Golang题解之第415题字符串相加

题目&#xff1a; 题解&#xff1a; func addStrings(num1 string, num2 string) string {add : 0ans : ""for i, j : len(num1) - 1, len(num2) - 1; i > 0 || j > 0 || add ! 0; i, j i - 1, j - 1 {var x, y intif i > 0 {x int(num1[i] - 0)}if j &g…

二叉树的层序遍历(含十道leetcode相关题目)

文章目录 二叉树层序遍历模板102. 二叉树的层序遍历 二叉树层序遍历模板 我们之前讲过了关于二叉树的深度优先遍历的文章&#xff1a;前中后序遍历的递归法和迭代法。 接下来我们再来介绍二叉树的另一种遍历方式&#xff1a;层序遍历。 层序遍历一个二叉树。就是从左到右一层…

1.1 软件测试 + AI

欢迎大家订阅【软件测试】学习专栏&#xff0c;开启你的软件测试学习之旅&#xff01; 文章目录 前言一、软件测试二、人工智能的引入 前言 人工智能的引入为软件测试带来了巨大的变革&#xff0c;不仅提升了测试效率和准确性&#xff0c;也为软件质量的保障提供了新的手段。通…

微信小程序开发自带的自定义Navigation-bar避坑

最近新开了一个小程序项目&#xff0c;用了新版本的微信小程序开发工具。在模拟器上开发一直都很顺利&#xff0c;开发完成之后&#xff0c;要上到真机上进行测试&#xff0c;发现在华为的鸿蒙上&#xff0c;样式有点不对了。 居然NavigationBar被遮住了一半&#xff0c;发现在…

Spark-ShuffleWriter-UnsafeShuffleWriter-钨丝内存分配

一、上下文 《Spark-ShuffleWriter-UnsafeShuffleWriter》中提到在进行Page内存分配时&#xff0c;调用了一行代码 MemoryBlock page memoryManager.tungstenMemoryAllocator().allocate(acquired); 这里就会走MemoryManager的钨丝内存分配&#xff0c;下面我们来详细看下 …

MySQL高阶1831-每天的最大交易

题目 编写一个解决方案&#xff0c;报告每天交易金额 amount 最大 的交易 ID 。如果一天中有多个这样的交易&#xff0c;返回这些交易的 ID 。 返回结果根据 transaction_id 升序排列。 准备数据 Create table If Not Exists Transactions (transaction_id int, day date, …

python筛选出不合格密码的用户

有如下数据&#xff1a;筛选出不合格密码的用户&#xff0c;对出现至少四个连续数值为不合格密码&#xff0c;例如"1234"、"8765"为不合格密码 用户名密码X12345678Y87654321O10293847P39485726Q28475639R19283746S91827364T56473829U83746592V28374659W7…

新手教学系列——基于统一页面的管理后台设计(一)

在现代企业级应用中,后台管理系统往往是核心组成部分,特别是随着业务规模的扩展,如何在多个后端服务模块的基础上实现统一的登录验证、权限控制和页面管理,成为许多开发者面对的挑战。本文将以实际项目为例,详细讲解如何设计一个多模块的后台管理系统,满足不同服务模块的…

superset 解决在 mac 电脑上发送 slack 通知的问题

参考文档: https://superset.apache.org/docs/configuration/alerts-reports/ 核心配置: FROM apache/superset:3.1.0USER rootRUN apt-get update && \apt-get install --no-install-recommends -y firefox-esrENV GECKODRIVER_VERSION0.29.0 RUN wget -q https://g…

leetcode:字符串中的第一个唯一字符

#include <unordered_map> class Solution { public:int firstUniqChar(string s) {unordered_map<char, int> HashMap;string::iterator it s.begin();int i 0;//标记元素下标while (it ! s.end())//初始化哈希表{if (HashMap.count(*it) > 0)//原先hash表中…

saltstack远程执行

一、saltstack远程执行 一、saltstack远程执行&#xff1a;目标-targeting 详解见&#xff1a;https://www.cnblogs.com/phennry/p/5416408.html 1、查看认证主机情况 2、具体匹配 Globing :   *, 正则:      指定-E参数&#xff0c;正则表达式匹配多个 List&#xff1a…

我的AI工具箱Tauri版-FasterWhisper音频转文本

本教程基于自研的AI工具箱Tauri版进行FasterWhisper音频转文本服务。 进入软件后可以直接搜索 FasterWhisper 或者依次点击 Python音频技术/音频tools 进入该模块。 进入目录后需要进行一些基础配置&#xff0c;参数是默认的可以根据自己的机器进行一些简单的参数操作。 使用方…

新的 MathWorks 硬件支持包支持从 MATLAB 和 Simulink 模型到高通 Hexagon 神经处理单元架构的自动化代码生成

MathWorks 今天宣布&#xff0c;推出针对 Qualcomm Hexagon™ 神经处理单元&#xff08;NPU&#xff09;的硬件支持包。该处理单元嵌入在 Snapdragon 系列处理器中。MathWorks 硬件支持包&#xff0c;则专门针对 Qualcomm Technologies 的 Hexagon NPU 架构进行优化&#xff0c…

NISP 一级 | 7.2 信息安全风险管理

关注这个证书的其他相关笔记&#xff1a;NISP 一级 —— 考证笔记合集-CSDN博客 0x01&#xff1a;信息安全风险 信息系统不可能达到绝对安全&#xff0c;但可以通过安全风险&#xff08;以下简称“风险”&#xff09;控制来实现符合个人或单位目标的一定程度的安全。信息安全管…